1*d5c09012SAndroid Build Coastguard Worker// Copyright 2023 Google LLC 2*d5c09012SAndroid Build Coastguard Worker// 3*d5c09012SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License"); 4*d5c09012SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License. 5*d5c09012SAndroid Build Coastguard Worker// You may obtain a copy of the License at 6*d5c09012SAndroid Build Coastguard Worker// 7*d5c09012SAndroid Build Coastguard Worker// http://www.apache.org/licenses/LICENSE-2.0 8*d5c09012SAndroid Build Coastguard Worker// 9*d5c09012SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software 10*d5c09012SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS, 11*d5c09012SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*d5c09012SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and 13*d5c09012SAndroid Build Coastguard Worker// limitations under the License. 14*d5c09012SAndroid Build Coastguard Worker 15*d5c09012SAndroid Build Coastguard Workersyntax = "proto3"; 16*d5c09012SAndroid Build Coastguard Worker 17*d5c09012SAndroid Build Coastguard Workerpackage google.api.servicemanagement.v1; 18*d5c09012SAndroid Build Coastguard Worker 19*d5c09012SAndroid Build Coastguard Workerimport "google/api/config_change.proto"; 20*d5c09012SAndroid Build Coastguard Workerimport "google/api/field_behavior.proto"; 21*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/timestamp.proto"; 22*d5c09012SAndroid Build Coastguard Worker 23*d5c09012SAndroid Build Coastguard Workeroption csharp_namespace = "Google.Cloud.ServiceManagement.V1"; 24*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/servicemanagement/apiv1/servicemanagementpb;servicemanagementpb"; 25*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true; 26*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "ResourcesProto"; 27*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.api.servicemanagement.v1"; 28*d5c09012SAndroid Build Coastguard Workeroption objc_class_prefix = "GASM"; 29*d5c09012SAndroid Build Coastguard Workeroption php_namespace = "Google\\Cloud\\ServiceManagement\\V1"; 30*d5c09012SAndroid Build Coastguard Workeroption ruby_package = "Google::Cloud::ServiceManagement::V1"; 31*d5c09012SAndroid Build Coastguard Worker 32*d5c09012SAndroid Build Coastguard Worker// The full representation of a Service that is managed by 33*d5c09012SAndroid Build Coastguard Worker// Google Service Management. 34*d5c09012SAndroid Build Coastguard Workermessage ManagedService { 35*d5c09012SAndroid Build Coastguard Worker // The name of the service. See the 36*d5c09012SAndroid Build Coastguard Worker // [overview](https://cloud.google.com/service-infrastructure/docs/overview) 37*d5c09012SAndroid Build Coastguard Worker // for naming requirements. 38*d5c09012SAndroid Build Coastguard Worker string service_name = 2; 39*d5c09012SAndroid Build Coastguard Worker 40*d5c09012SAndroid Build Coastguard Worker // ID of the project that produces and owns this service. 41*d5c09012SAndroid Build Coastguard Worker string producer_project_id = 3; 42*d5c09012SAndroid Build Coastguard Worker} 43*d5c09012SAndroid Build Coastguard Worker 44*d5c09012SAndroid Build Coastguard Worker// The metadata associated with a long running operation resource. 45*d5c09012SAndroid Build Coastguard Workermessage OperationMetadata { 46*d5c09012SAndroid Build Coastguard Worker // Represents the status of one operation step. 47*d5c09012SAndroid Build Coastguard Worker message Step { 48*d5c09012SAndroid Build Coastguard Worker // The short description of the step. 49*d5c09012SAndroid Build Coastguard Worker string description = 2; 50*d5c09012SAndroid Build Coastguard Worker 51*d5c09012SAndroid Build Coastguard Worker // The status code. 52*d5c09012SAndroid Build Coastguard Worker Status status = 4; 53*d5c09012SAndroid Build Coastguard Worker } 54*d5c09012SAndroid Build Coastguard Worker 55*d5c09012SAndroid Build Coastguard Worker // Code describes the status of the operation (or one of its steps). 56*d5c09012SAndroid Build Coastguard Worker enum Status { 57*d5c09012SAndroid Build Coastguard Worker // Unspecifed code. 58*d5c09012SAndroid Build Coastguard Worker STATUS_UNSPECIFIED = 0; 59*d5c09012SAndroid Build Coastguard Worker 60*d5c09012SAndroid Build Coastguard Worker // The operation or step has completed without errors. 61*d5c09012SAndroid Build Coastguard Worker DONE = 1; 62*d5c09012SAndroid Build Coastguard Worker 63*d5c09012SAndroid Build Coastguard Worker // The operation or step has not started yet. 64*d5c09012SAndroid Build Coastguard Worker NOT_STARTED = 2; 65*d5c09012SAndroid Build Coastguard Worker 66*d5c09012SAndroid Build Coastguard Worker // The operation or step is in progress. 67*d5c09012SAndroid Build Coastguard Worker IN_PROGRESS = 3; 68*d5c09012SAndroid Build Coastguard Worker 69*d5c09012SAndroid Build Coastguard Worker // The operation or step has completed with errors. If the operation is 70*d5c09012SAndroid Build Coastguard Worker // rollbackable, the rollback completed with errors too. 71*d5c09012SAndroid Build Coastguard Worker FAILED = 4; 72*d5c09012SAndroid Build Coastguard Worker 73*d5c09012SAndroid Build Coastguard Worker // The operation or step has completed with cancellation. 74*d5c09012SAndroid Build Coastguard Worker CANCELLED = 5; 75*d5c09012SAndroid Build Coastguard Worker } 76*d5c09012SAndroid Build Coastguard Worker 77*d5c09012SAndroid Build Coastguard Worker // The full name of the resources that this operation is directly 78*d5c09012SAndroid Build Coastguard Worker // associated with. 79*d5c09012SAndroid Build Coastguard Worker repeated string resource_names = 1; 80*d5c09012SAndroid Build Coastguard Worker 81*d5c09012SAndroid Build Coastguard Worker // Detailed status information for each step. The order is undetermined. 82*d5c09012SAndroid Build Coastguard Worker repeated Step steps = 2; 83*d5c09012SAndroid Build Coastguard Worker 84*d5c09012SAndroid Build Coastguard Worker // Percentage of completion of this operation, ranging from 0 to 100. 85*d5c09012SAndroid Build Coastguard Worker int32 progress_percentage = 3; 86*d5c09012SAndroid Build Coastguard Worker 87*d5c09012SAndroid Build Coastguard Worker // The start time of the operation. 88*d5c09012SAndroid Build Coastguard Worker google.protobuf.Timestamp start_time = 4; 89*d5c09012SAndroid Build Coastguard Worker} 90*d5c09012SAndroid Build Coastguard Worker 91*d5c09012SAndroid Build Coastguard Worker// Represents a diagnostic message (error or warning) 92*d5c09012SAndroid Build Coastguard Workermessage Diagnostic { 93*d5c09012SAndroid Build Coastguard Worker // The kind of diagnostic information possible. 94*d5c09012SAndroid Build Coastguard Worker enum Kind { 95*d5c09012SAndroid Build Coastguard Worker // Warnings and errors 96*d5c09012SAndroid Build Coastguard Worker WARNING = 0; 97*d5c09012SAndroid Build Coastguard Worker 98*d5c09012SAndroid Build Coastguard Worker // Only errors 99*d5c09012SAndroid Build Coastguard Worker ERROR = 1; 100*d5c09012SAndroid Build Coastguard Worker } 101*d5c09012SAndroid Build Coastguard Worker 102*d5c09012SAndroid Build Coastguard Worker // File name and line number of the error or warning. 103*d5c09012SAndroid Build Coastguard Worker string location = 1; 104*d5c09012SAndroid Build Coastguard Worker 105*d5c09012SAndroid Build Coastguard Worker // The kind of diagnostic information provided. 106*d5c09012SAndroid Build Coastguard Worker Kind kind = 2; 107*d5c09012SAndroid Build Coastguard Worker 108*d5c09012SAndroid Build Coastguard Worker // Message describing the error or warning. 109*d5c09012SAndroid Build Coastguard Worker string message = 3; 110*d5c09012SAndroid Build Coastguard Worker} 111*d5c09012SAndroid Build Coastguard Worker 112*d5c09012SAndroid Build Coastguard Worker// Represents a source file which is used to generate the service configuration 113*d5c09012SAndroid Build Coastguard Worker// defined by `google.api.Service`. 114*d5c09012SAndroid Build Coastguard Workermessage ConfigSource { 115*d5c09012SAndroid Build Coastguard Worker // A unique ID for a specific instance of this message, typically assigned 116*d5c09012SAndroid Build Coastguard Worker // by the client for tracking purpose. If empty, the server may choose to 117*d5c09012SAndroid Build Coastguard Worker // generate one instead. 118*d5c09012SAndroid Build Coastguard Worker string id = 5; 119*d5c09012SAndroid Build Coastguard Worker 120*d5c09012SAndroid Build Coastguard Worker // Set of source configuration files that are used to generate a service 121*d5c09012SAndroid Build Coastguard Worker // configuration (`google.api.Service`). 122*d5c09012SAndroid Build Coastguard Worker repeated ConfigFile files = 2; 123*d5c09012SAndroid Build Coastguard Worker} 124*d5c09012SAndroid Build Coastguard Worker 125*d5c09012SAndroid Build Coastguard Worker// Generic specification of a source configuration file 126*d5c09012SAndroid Build Coastguard Workermessage ConfigFile { 127*d5c09012SAndroid Build Coastguard Worker enum FileType { 128*d5c09012SAndroid Build Coastguard Worker // Unknown file type. 129*d5c09012SAndroid Build Coastguard Worker FILE_TYPE_UNSPECIFIED = 0; 130*d5c09012SAndroid Build Coastguard Worker 131*d5c09012SAndroid Build Coastguard Worker // YAML-specification of service. 132*d5c09012SAndroid Build Coastguard Worker SERVICE_CONFIG_YAML = 1; 133*d5c09012SAndroid Build Coastguard Worker 134*d5c09012SAndroid Build Coastguard Worker // OpenAPI specification, serialized in JSON. 135*d5c09012SAndroid Build Coastguard Worker OPEN_API_JSON = 2; 136*d5c09012SAndroid Build Coastguard Worker 137*d5c09012SAndroid Build Coastguard Worker // OpenAPI specification, serialized in YAML. 138*d5c09012SAndroid Build Coastguard Worker OPEN_API_YAML = 3; 139*d5c09012SAndroid Build Coastguard Worker 140*d5c09012SAndroid Build Coastguard Worker // FileDescriptorSet, generated by protoc. 141*d5c09012SAndroid Build Coastguard Worker // 142*d5c09012SAndroid Build Coastguard Worker // To generate, use protoc with imports and source info included. 143*d5c09012SAndroid Build Coastguard Worker // For an example test.proto file, the following command would put the value 144*d5c09012SAndroid Build Coastguard Worker // in a new file named out.pb. 145*d5c09012SAndroid Build Coastguard Worker // 146*d5c09012SAndroid Build Coastguard Worker // $protoc --include_imports --include_source_info test.proto -o out.pb 147*d5c09012SAndroid Build Coastguard Worker FILE_DESCRIPTOR_SET_PROTO = 4; 148*d5c09012SAndroid Build Coastguard Worker 149*d5c09012SAndroid Build Coastguard Worker // Uncompiled Proto file. Used for storage and display purposes only, 150*d5c09012SAndroid Build Coastguard Worker // currently server-side compilation is not supported. Should match the 151*d5c09012SAndroid Build Coastguard Worker // inputs to 'protoc' command used to generated FILE_DESCRIPTOR_SET_PROTO. A 152*d5c09012SAndroid Build Coastguard Worker // file of this type can only be included if at least one file of type 153*d5c09012SAndroid Build Coastguard Worker // FILE_DESCRIPTOR_SET_PROTO is included. 154*d5c09012SAndroid Build Coastguard Worker PROTO_FILE = 6; 155*d5c09012SAndroid Build Coastguard Worker } 156*d5c09012SAndroid Build Coastguard Worker 157*d5c09012SAndroid Build Coastguard Worker // The file name of the configuration file (full or relative path). 158*d5c09012SAndroid Build Coastguard Worker string file_path = 1; 159*d5c09012SAndroid Build Coastguard Worker 160*d5c09012SAndroid Build Coastguard Worker // The bytes that constitute the file. 161*d5c09012SAndroid Build Coastguard Worker bytes file_contents = 3; 162*d5c09012SAndroid Build Coastguard Worker 163*d5c09012SAndroid Build Coastguard Worker // The type of configuration file this represents. 164*d5c09012SAndroid Build Coastguard Worker FileType file_type = 4; 165*d5c09012SAndroid Build Coastguard Worker} 166*d5c09012SAndroid Build Coastguard Worker 167*d5c09012SAndroid Build Coastguard Worker// Represents a service configuration with its name and id. 168*d5c09012SAndroid Build Coastguard Workermessage ConfigRef { 169*d5c09012SAndroid Build Coastguard Worker // Resource name of a service config. It must have the following 170*d5c09012SAndroid Build Coastguard Worker // format: "services/{service name}/configs/{config id}". 171*d5c09012SAndroid Build Coastguard Worker string name = 1; 172*d5c09012SAndroid Build Coastguard Worker} 173*d5c09012SAndroid Build Coastguard Worker 174*d5c09012SAndroid Build Coastguard Worker// Change report associated with a particular service configuration. 175*d5c09012SAndroid Build Coastguard Worker// 176*d5c09012SAndroid Build Coastguard Worker// It contains a list of ConfigChanges based on the comparison between 177*d5c09012SAndroid Build Coastguard Worker// two service configurations. 178*d5c09012SAndroid Build Coastguard Workermessage ChangeReport { 179*d5c09012SAndroid Build Coastguard Worker // List of changes between two service configurations. 180*d5c09012SAndroid Build Coastguard Worker // The changes will be alphabetically sorted based on the identifier 181*d5c09012SAndroid Build Coastguard Worker // of each change. 182*d5c09012SAndroid Build Coastguard Worker // A ConfigChange identifier is a dot separated path to the configuration. 183*d5c09012SAndroid Build Coastguard Worker // Example: visibility.rules[selector='LibraryService.CreateBook'].restriction 184*d5c09012SAndroid Build Coastguard Worker repeated google.api.ConfigChange config_changes = 1; 185*d5c09012SAndroid Build Coastguard Worker} 186*d5c09012SAndroid Build Coastguard Worker 187*d5c09012SAndroid Build Coastguard Worker// A rollout resource that defines how service configuration versions are pushed 188*d5c09012SAndroid Build Coastguard Worker// to control plane systems. Typically, you create a new version of the 189*d5c09012SAndroid Build Coastguard Worker// service config, and then create a Rollout to push the service config. 190*d5c09012SAndroid Build Coastguard Workermessage Rollout { 191*d5c09012SAndroid Build Coastguard Worker // Strategy that specifies how clients of Google Service Controller want to 192*d5c09012SAndroid Build Coastguard Worker // send traffic to use different config versions. This is generally 193*d5c09012SAndroid Build Coastguard Worker // used by API proxy to split traffic based on your configured percentage for 194*d5c09012SAndroid Build Coastguard Worker // each config version. 195*d5c09012SAndroid Build Coastguard Worker // 196*d5c09012SAndroid Build Coastguard Worker // One example of how to gradually rollout a new service configuration using 197*d5c09012SAndroid Build Coastguard Worker // this 198*d5c09012SAndroid Build Coastguard Worker // strategy: 199*d5c09012SAndroid Build Coastguard Worker // Day 1 200*d5c09012SAndroid Build Coastguard Worker // 201*d5c09012SAndroid Build Coastguard Worker // Rollout { 202*d5c09012SAndroid Build Coastguard Worker // id: "example.googleapis.com/rollout_20160206" 203*d5c09012SAndroid Build Coastguard Worker // traffic_percent_strategy { 204*d5c09012SAndroid Build Coastguard Worker // percentages: { 205*d5c09012SAndroid Build Coastguard Worker // "example.googleapis.com/20160201": 70.00 206*d5c09012SAndroid Build Coastguard Worker // "example.googleapis.com/20160206": 30.00 207*d5c09012SAndroid Build Coastguard Worker // } 208*d5c09012SAndroid Build Coastguard Worker // } 209*d5c09012SAndroid Build Coastguard Worker // } 210*d5c09012SAndroid Build Coastguard Worker // 211*d5c09012SAndroid Build Coastguard Worker // Day 2 212*d5c09012SAndroid Build Coastguard Worker // 213*d5c09012SAndroid Build Coastguard Worker // Rollout { 214*d5c09012SAndroid Build Coastguard Worker // id: "example.googleapis.com/rollout_20160207" 215*d5c09012SAndroid Build Coastguard Worker // traffic_percent_strategy: { 216*d5c09012SAndroid Build Coastguard Worker // percentages: { 217*d5c09012SAndroid Build Coastguard Worker // "example.googleapis.com/20160206": 100.00 218*d5c09012SAndroid Build Coastguard Worker // } 219*d5c09012SAndroid Build Coastguard Worker // } 220*d5c09012SAndroid Build Coastguard Worker // } 221*d5c09012SAndroid Build Coastguard Worker message TrafficPercentStrategy { 222*d5c09012SAndroid Build Coastguard Worker // Maps service configuration IDs to their corresponding traffic percentage. 223*d5c09012SAndroid Build Coastguard Worker // Key is the service configuration ID, Value is the traffic percentage 224*d5c09012SAndroid Build Coastguard Worker // which must be greater than 0.0 and the sum must equal to 100.0. 225*d5c09012SAndroid Build Coastguard Worker map<string, double> percentages = 1; 226*d5c09012SAndroid Build Coastguard Worker } 227*d5c09012SAndroid Build Coastguard Worker 228*d5c09012SAndroid Build Coastguard Worker // Strategy used to delete a service. This strategy is a placeholder only 229*d5c09012SAndroid Build Coastguard Worker // used by the system generated rollout to delete a service. 230*d5c09012SAndroid Build Coastguard Worker message DeleteServiceStrategy {} 231*d5c09012SAndroid Build Coastguard Worker 232*d5c09012SAndroid Build Coastguard Worker // Status of a Rollout. 233*d5c09012SAndroid Build Coastguard Worker enum RolloutStatus { 234*d5c09012SAndroid Build Coastguard Worker // No status specified. 235*d5c09012SAndroid Build Coastguard Worker ROLLOUT_STATUS_UNSPECIFIED = 0; 236*d5c09012SAndroid Build Coastguard Worker 237*d5c09012SAndroid Build Coastguard Worker // The Rollout is in progress. 238*d5c09012SAndroid Build Coastguard Worker IN_PROGRESS = 1; 239*d5c09012SAndroid Build Coastguard Worker 240*d5c09012SAndroid Build Coastguard Worker // The Rollout has completed successfully. 241*d5c09012SAndroid Build Coastguard Worker SUCCESS = 2; 242*d5c09012SAndroid Build Coastguard Worker 243*d5c09012SAndroid Build Coastguard Worker // The Rollout has been cancelled. This can happen if you have overlapping 244*d5c09012SAndroid Build Coastguard Worker // Rollout pushes, and the previous ones will be cancelled. 245*d5c09012SAndroid Build Coastguard Worker CANCELLED = 3; 246*d5c09012SAndroid Build Coastguard Worker 247*d5c09012SAndroid Build Coastguard Worker // The Rollout has failed and the rollback attempt has failed too. 248*d5c09012SAndroid Build Coastguard Worker FAILED = 4; 249*d5c09012SAndroid Build Coastguard Worker 250*d5c09012SAndroid Build Coastguard Worker // The Rollout has not started yet and is pending for execution. 251*d5c09012SAndroid Build Coastguard Worker PENDING = 5; 252*d5c09012SAndroid Build Coastguard Worker 253*d5c09012SAndroid Build Coastguard Worker // The Rollout has failed and rolled back to the previous successful 254*d5c09012SAndroid Build Coastguard Worker // Rollout. 255*d5c09012SAndroid Build Coastguard Worker FAILED_ROLLED_BACK = 6; 256*d5c09012SAndroid Build Coastguard Worker } 257*d5c09012SAndroid Build Coastguard Worker 258*d5c09012SAndroid Build Coastguard Worker // Optional. Unique identifier of this Rollout. Must be no longer than 63 259*d5c09012SAndroid Build Coastguard Worker // characters and only lower case letters, digits, '.', '_' and '-' are 260*d5c09012SAndroid Build Coastguard Worker // allowed. 261*d5c09012SAndroid Build Coastguard Worker // 262*d5c09012SAndroid Build Coastguard Worker // If not specified by client, the server will generate one. The generated id 263*d5c09012SAndroid Build Coastguard Worker // will have the form of <date><revision number>, where "date" is the create 264*d5c09012SAndroid Build Coastguard Worker // date in ISO 8601 format. "revision number" is a monotonically increasing 265*d5c09012SAndroid Build Coastguard Worker // positive number that is reset every day for each service. 266*d5c09012SAndroid Build Coastguard Worker // An example of the generated rollout_id is '2016-02-16r1' 267*d5c09012SAndroid Build Coastguard Worker string rollout_id = 1 [(google.api.field_behavior) = OPTIONAL]; 268*d5c09012SAndroid Build Coastguard Worker 269*d5c09012SAndroid Build Coastguard Worker // Creation time of the rollout. Readonly. 270*d5c09012SAndroid Build Coastguard Worker google.protobuf.Timestamp create_time = 2; 271*d5c09012SAndroid Build Coastguard Worker 272*d5c09012SAndroid Build Coastguard Worker // The user who created the Rollout. Readonly. 273*d5c09012SAndroid Build Coastguard Worker string created_by = 3; 274*d5c09012SAndroid Build Coastguard Worker 275*d5c09012SAndroid Build Coastguard Worker // The status of this rollout. Readonly. In case of a failed rollout, 276*d5c09012SAndroid Build Coastguard Worker // the system will automatically rollback to the current Rollout 277*d5c09012SAndroid Build Coastguard Worker // version. Readonly. 278*d5c09012SAndroid Build Coastguard Worker RolloutStatus status = 4; 279*d5c09012SAndroid Build Coastguard Worker 280*d5c09012SAndroid Build Coastguard Worker // Strategy that defines which versions of service configurations should be 281*d5c09012SAndroid Build Coastguard Worker // pushed 282*d5c09012SAndroid Build Coastguard Worker // and how they should be used at runtime. 283*d5c09012SAndroid Build Coastguard Worker oneof strategy { 284*d5c09012SAndroid Build Coastguard Worker // Google Service Control selects service configurations based on 285*d5c09012SAndroid Build Coastguard Worker // traffic percentage. 286*d5c09012SAndroid Build Coastguard Worker TrafficPercentStrategy traffic_percent_strategy = 5; 287*d5c09012SAndroid Build Coastguard Worker 288*d5c09012SAndroid Build Coastguard Worker // The strategy associated with a rollout to delete a `ManagedService`. 289*d5c09012SAndroid Build Coastguard Worker // Readonly. 290*d5c09012SAndroid Build Coastguard Worker DeleteServiceStrategy delete_service_strategy = 200; 291*d5c09012SAndroid Build Coastguard Worker } 292*d5c09012SAndroid Build Coastguard Worker 293*d5c09012SAndroid Build Coastguard Worker // The name of the service associated with this Rollout. 294*d5c09012SAndroid Build Coastguard Worker string service_name = 8; 295*d5c09012SAndroid Build Coastguard Worker} 296