xref: /aosp_15_r20/external/googleapis/google/api/servicemanagement/v1/resources.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
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