Built motion from commit 6a09e18b.|2.6.11
[motion2.git] / legacy-libs / google-proto-files / google / api / servicemanagement / v1 / servicemanager.proto
1 // Copyright 2018 Google Inc.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 //     http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14
15 syntax = "proto3";
16
17 package google.api.servicemanagement.v1;
18
19 import "google/api/annotations.proto";
20 import "google/api/service.proto";
21 import "google/api/servicemanagement/v1/resources.proto";
22 import "google/longrunning/operations.proto";
23 import "google/protobuf/any.proto";
24 import "google/protobuf/field_mask.proto";
25 import "google/protobuf/struct.proto";
26 import "google/rpc/status.proto";
27
28 option csharp_namespace = "Google.Cloud.ServiceManagement.V1";
29 option go_package = "google.golang.org/genproto/googleapis/api/servicemanagement/v1;servicemanagement";
30 option java_multiple_files = true;
31 option java_outer_classname = "ServiceManagerProto";
32 option java_package = "com.google.api.servicemanagement.v1";
33 option objc_class_prefix = "GASM";
34 option php_namespace = "Google\\Cloud\\ServiceManagement\\V1";
35
36 // [Google Service Management API](/service-management/overview)
37 service ServiceManager {
38   // Lists managed services.
39   //
40   // Returns all public services. For authenticated users, also returns all
41   // services the calling user has "servicemanagement.services.get" permission
42   // for.
43   //
44   // **BETA:** If the caller specifies the `consumer_id`, it returns only the
45   // services enabled on the consumer. The `consumer_id` must have the format
46   // of "project:{PROJECT-ID}".
47   rpc ListServices(ListServicesRequest) returns (ListServicesResponse) {
48     option (google.api.http) = {
49       get: "/v1/services"
50     };
51   }
52
53   // Gets a managed service. Authentication is required unless the service is
54   // public.
55   rpc GetService(GetServiceRequest) returns (ManagedService) {
56     option (google.api.http) = {
57       get: "/v1/services/{service_name}"
58     };
59   }
60
61   // Creates a new managed service.
62   // Please note one producer project can own no more than 20 services.
63   //
64   // Operation<response: ManagedService>
65   rpc CreateService(CreateServiceRequest)
66       returns (google.longrunning.Operation) {
67     option (google.api.http) = {
68       post: "/v1/services"
69       body: "service"
70     };
71   }
72
73   // Deletes a managed service. This method will change the service to the
74   // `Soft-Delete` state for 30 days. Within this period, service producers may
75   // call
76   // [UndeleteService][google.api.servicemanagement.v1.ServiceManager.UndeleteService]
77   // to restore the service. After 30 days, the service will be permanently
78   // deleted.
79   //
80   // Operation<response: google.protobuf.Empty>
81   rpc DeleteService(DeleteServiceRequest)
82       returns (google.longrunning.Operation) {
83     option (google.api.http) = {
84       delete: "/v1/services/{service_name}"
85     };
86   }
87
88   // Revives a previously deleted managed service. The method restores the
89   // service using the configuration at the time the service was deleted.
90   // The target service must exist and must have been deleted within the
91   // last 30 days.
92   //
93   // Operation<response: UndeleteServiceResponse>
94   rpc UndeleteService(UndeleteServiceRequest)
95       returns (google.longrunning.Operation) {
96     option (google.api.http) = {
97       post: "/v1/services/{service_name}:undelete"
98     };
99   }
100
101   // Lists the history of the service configuration for a managed service,
102   // from the newest to the oldest.
103   rpc ListServiceConfigs(ListServiceConfigsRequest)
104       returns (ListServiceConfigsResponse) {
105     option (google.api.http) = {
106       get: "/v1/services/{service_name}/configs"
107     };
108   }
109
110   // Gets a service configuration (version) for a managed service.
111   rpc GetServiceConfig(GetServiceConfigRequest) returns (google.api.Service) {
112     option (google.api.http) = {
113       get: "/v1/services/{service_name}/configs/{config_id}"
114       additional_bindings { get: "/v1/services/{service_name}/config" }
115     };
116   }
117
118   // Creates a new service configuration (version) for a managed service.
119   // This method only stores the service configuration. To roll out the service
120   // configuration to backend systems please call
121   // [CreateServiceRollout][google.api.servicemanagement.v1.ServiceManager.CreateServiceRollout].
122   //
123   // Only the 100 most recent service configurations and ones referenced by
124   // existing rollouts are kept for each service. The rest will be deleted
125   // eventually.
126   rpc CreateServiceConfig(CreateServiceConfigRequest)
127       returns (google.api.Service) {
128     option (google.api.http) = {
129       post: "/v1/services/{service_name}/configs"
130       body: "service_config"
131     };
132   }
133
134   // Creates a new service configuration (version) for a managed service based
135   // on
136   // user-supplied configuration source files (for example: OpenAPI
137   // Specification). This method stores the source configurations as well as the
138   // generated service configuration. To rollout the service configuration to
139   // other services,
140   // please call
141   // [CreateServiceRollout][google.api.servicemanagement.v1.ServiceManager.CreateServiceRollout].
142   //
143   // Only the 100 most recent configuration sources and ones referenced by
144   // existing service configurtions are kept for each service. The rest will be
145   // deleted eventually.
146   //
147   // Operation<response: SubmitConfigSourceResponse>
148   rpc SubmitConfigSource(SubmitConfigSourceRequest)
149       returns (google.longrunning.Operation) {
150     option (google.api.http) = {
151       post: "/v1/services/{service_name}/configs:submit"
152       body: "*"
153     };
154   }
155
156   // Lists the history of the service configuration rollouts for a managed
157   // service, from the newest to the oldest.
158   rpc ListServiceRollouts(ListServiceRolloutsRequest)
159       returns (ListServiceRolloutsResponse) {
160     option (google.api.http) = {
161       get: "/v1/services/{service_name}/rollouts"
162     };
163   }
164
165   // Gets a service configuration
166   // [rollout][google.api.servicemanagement.v1.Rollout].
167   rpc GetServiceRollout(GetServiceRolloutRequest) returns (Rollout) {
168     option (google.api.http) = {
169       get: "/v1/services/{service_name}/rollouts/{rollout_id}"
170     };
171   }
172
173   // Creates a new service configuration rollout. Based on rollout, the
174   // Google Service Management will roll out the service configurations to
175   // different backend services. For example, the logging configuration will be
176   // pushed to Google Cloud Logging.
177   //
178   // Please note that any previous pending and running Rollouts and associated
179   // Operations will be automatically cancelled so that the latest Rollout will
180   // not be blocked by previous Rollouts.
181   //
182   // Only the 100 most recent (in any state) and the last 10 successful (if not
183   // already part of the set of 100 most recent) rollouts are kept for each
184   // service. The rest will be deleted eventually.
185   //
186   // Operation<response: Rollout>
187   rpc CreateServiceRollout(CreateServiceRolloutRequest)
188       returns (google.longrunning.Operation) {
189     option (google.api.http) = {
190       post: "/v1/services/{service_name}/rollouts"
191       body: "rollout"
192     };
193   }
194
195   // Generates and returns a report (errors, warnings and changes from
196   // existing configurations) associated with
197   // GenerateConfigReportRequest.new_value
198   //
199   // If GenerateConfigReportRequest.old_value is specified,
200   // GenerateConfigReportRequest will contain a single ChangeReport based on the
201   // comparison between GenerateConfigReportRequest.new_value and
202   // GenerateConfigReportRequest.old_value.
203   // If GenerateConfigReportRequest.old_value is not specified, this method
204   // will compare GenerateConfigReportRequest.new_value with the last pushed
205   // service configuration.
206   rpc GenerateConfigReport(GenerateConfigReportRequest)
207       returns (GenerateConfigReportResponse) {
208     option (google.api.http) = {
209       post: "/v1/services:generateConfigReport"
210       body: "*"
211     };
212   }
213
214   // Enables a [service][google.api.servicemanagement.v1.ManagedService] for a
215   // project, so it can be used for the project. See [Cloud Auth
216   // Guide](https://cloud.google.com/docs/authentication) for more information.
217   //
218   // Operation<response: EnableServiceResponse>
219   rpc EnableService(EnableServiceRequest)
220       returns (google.longrunning.Operation) {
221     option (google.api.http) = {
222       post: "/v1/services/{service_name}:enable"
223       body: "*"
224     };
225   }
226
227   // Disables a [service][google.api.servicemanagement.v1.ManagedService] for a
228   // project, so it can no longer be be used for the project. It prevents
229   // accidental usage that may cause unexpected billing charges or security
230   // leaks.
231   //
232   // Operation<response: DisableServiceResponse>
233   rpc DisableService(DisableServiceRequest)
234       returns (google.longrunning.Operation) {
235     option (google.api.http) = {
236       post: "/v1/services/{service_name}:disable"
237       body: "*"
238     };
239   }
240 }
241
242 // Request message for `ListServices` method.
243 message ListServicesRequest {
244   // Include services produced by the specified project.
245   string producer_project_id = 1;
246
247   // Requested size of the next page of data.
248   int32 page_size = 5;
249
250   // Token identifying which result to start with; returned by a previous list
251   // call.
252   string page_token = 6;
253
254   // Include services consumed by the specified consumer.
255   //
256   // The Google Service Management implementation accepts the following
257   // forms:
258   // - project:<project_id>
259   string consumer_id = 7;
260 }
261
262 // Response message for `ListServices` method.
263 message ListServicesResponse {
264   // The returned services will only have the name field set.
265   repeated ManagedService services = 1;
266
267   // Token that can be passed to `ListServices` to resume a paginated query.
268   string next_page_token = 2;
269 }
270
271 // Request message for `GetService` method.
272 message GetServiceRequest {
273   // The name of the service.  See the `ServiceManager` overview for naming
274   // requirements.  For example: `example.googleapis.com`.
275   string service_name = 1;
276 }
277
278 // Request message for CreateService method.
279 message CreateServiceRequest {
280   // Initial values for the service resource.
281   ManagedService service = 1;
282 }
283
284 // Request message for DeleteService method.
285 message DeleteServiceRequest {
286   // The name of the service.  See the [overview](/service-management/overview)
287   // for naming requirements.  For example: `example.googleapis.com`.
288   string service_name = 1;
289 }
290
291 // Request message for UndeleteService method.
292 message UndeleteServiceRequest {
293   // The name of the service. See the [overview](/service-management/overview)
294   // for naming requirements. For example: `example.googleapis.com`.
295   string service_name = 1;
296 }
297
298 // Response message for UndeleteService method.
299 message UndeleteServiceResponse {
300   // Revived service resource.
301   ManagedService service = 1;
302 }
303
304 // Request message for GetServiceConfig method.
305 message GetServiceConfigRequest {
306   enum ConfigView {
307     // Server response includes all fields except SourceInfo.
308     BASIC = 0;
309
310     // Server response includes all fields including SourceInfo.
311     // SourceFiles are of type 'google.api.servicemanagement.v1.ConfigFile'
312     // and are only available for configs created using the
313     // SubmitConfigSource method.
314     FULL = 1;
315   }
316
317   // The name of the service.  See the [overview](/service-management/overview)
318   // for naming requirements.  For example: `example.googleapis.com`.
319   string service_name = 1;
320
321   // The id of the service configuration resource.
322   string config_id = 2;
323
324   // Specifies which parts of the Service Config should be returned in the
325   // response.
326   ConfigView view = 3;
327 }
328
329 // Request message for ListServiceConfigs method.
330 message ListServiceConfigsRequest {
331   // The name of the service.  See the [overview](/service-management/overview)
332   // for naming requirements.  For example: `example.googleapis.com`.
333   string service_name = 1;
334
335   // The token of the page to retrieve.
336   string page_token = 2;
337
338   // The max number of items to include in the response list.
339   int32 page_size = 3;
340 }
341
342 // Response message for ListServiceConfigs method.
343 message ListServiceConfigsResponse {
344   // The list of service configuration resources.
345   repeated google.api.Service service_configs = 1;
346
347   // The token of the next page of results.
348   string next_page_token = 2;
349 }
350
351 // Request message for CreateServiceConfig method.
352 message CreateServiceConfigRequest {
353   // The name of the service.  See the [overview](/service-management/overview)
354   // for naming requirements.  For example: `example.googleapis.com`.
355   string service_name = 1;
356
357   // The service configuration resource.
358   google.api.Service service_config = 2;
359 }
360
361 // Request message for SubmitConfigSource method.
362 message SubmitConfigSourceRequest {
363   // The name of the service.  See the [overview](/service-management/overview)
364   // for naming requirements.  For example: `example.googleapis.com`.
365   string service_name = 1;
366
367   // The source configuration for the service.
368   ConfigSource config_source = 2;
369
370   // Optional. If set, this will result in the generation of a
371   // `google.api.Service` configuration based on the `ConfigSource` provided,
372   // but the generated config and the sources will NOT be persisted.
373   bool validate_only = 3;
374 }
375
376 // Response message for SubmitConfigSource method.
377 message SubmitConfigSourceResponse {
378   // The generated service configuration.
379   google.api.Service service_config = 1;
380 }
381
382 // Request message for 'CreateServiceRollout'
383 message CreateServiceRolloutRequest {
384   // The name of the service.  See the [overview](/service-management/overview)
385   // for naming requirements.  For example: `example.googleapis.com`.
386   string service_name = 1;
387
388   // The rollout resource. The `service_name` field is output only.
389   Rollout rollout = 2;
390 }
391
392 // Request message for 'ListServiceRollouts'
393 message ListServiceRolloutsRequest {
394   // The name of the service.  See the [overview](/service-management/overview)
395   // for naming requirements.  For example: `example.googleapis.com`.
396   string service_name = 1;
397
398   // The token of the page to retrieve.
399   string page_token = 2;
400
401   // The max number of items to include in the response list.
402   int32 page_size = 3;
403
404   // Use `filter` to return subset of rollouts.
405   // The following filters are supported:
406   //   -- To limit the results to only those in
407   //      [status](google.api.servicemanagement.v1.RolloutStatus) 'SUCCESS',
408   //      use filter='status=SUCCESS'
409   //   -- To limit the results to those in
410   //      [status](google.api.servicemanagement.v1.RolloutStatus) 'CANCELLED'
411   //      or 'FAILED', use filter='status=CANCELLED OR status=FAILED'
412   string filter = 4;
413 }
414
415 // Response message for ListServiceRollouts method.
416 message ListServiceRolloutsResponse {
417   // The list of rollout resources.
418   repeated Rollout rollouts = 1;
419
420   // The token of the next page of results.
421   string next_page_token = 2;
422 }
423
424 // Request message for GetServiceRollout method.
425 message GetServiceRolloutRequest {
426   // The name of the service.  See the [overview](/service-management/overview)
427   // for naming requirements.  For example: `example.googleapis.com`.
428   string service_name = 1;
429
430   // The id of the rollout resource.
431   string rollout_id = 2;
432 }
433
434 // Request message for EnableService method.
435 message EnableServiceRequest {
436   // Name of the service to enable. Specifying an unknown service name will
437   // cause the request to fail.
438   string service_name = 1;
439
440   // The identity of consumer resource which service enablement will be
441   // applied to.
442   //
443   // The Google Service Management implementation accepts the following
444   // forms:
445   // - "project:<project_id>"
446   //
447   // Note: this is made compatible with
448   // google.api.servicecontrol.v1.Operation.consumer_id.
449   string consumer_id = 2;
450 }
451
452 // Request message for DisableService method.
453 message DisableServiceRequest {
454   // Name of the service to disable. Specifying an unknown service name
455   // will cause the request to fail.
456   string service_name = 1;
457
458   // The identity of consumer resource which service disablement will be
459   // applied to.
460   //
461   // The Google Service Management implementation accepts the following
462   // forms:
463   // - "project:<project_id>"
464   //
465   // Note: this is made compatible with
466   // google.api.servicecontrol.v1.Operation.consumer_id.
467   string consumer_id = 2;
468 }
469
470 // Request message for GenerateConfigReport method.
471 message GenerateConfigReportRequest {
472   // Service configuration for which we want to generate the report.
473   // For this version of API, the supported types are
474   // [google.api.servicemanagement.v1.ConfigRef][google.api.servicemanagement.v1.ConfigRef],
475   // [google.api.servicemanagement.v1.ConfigSource][google.api.servicemanagement.v1.ConfigSource],
476   // and [google.api.Service][google.api.Service]
477   google.protobuf.Any new_config = 1;
478
479   // Service configuration against which the comparison will be done.
480   // For this version of API, the supported types are
481   // [google.api.servicemanagement.v1.ConfigRef][google.api.servicemanagement.v1.ConfigRef],
482   // [google.api.servicemanagement.v1.ConfigSource][google.api.servicemanagement.v1.ConfigSource],
483   // and [google.api.Service][google.api.Service]
484   google.protobuf.Any old_config = 2;
485 }
486
487 // Response message for GenerateConfigReport method.
488 message GenerateConfigReportResponse {
489   // Name of the service this report belongs to.
490   string service_name = 1;
491
492   // ID of the service configuration this report belongs to.
493   string id = 2;
494
495   // list of ChangeReport, each corresponding to comparison between two
496   // service configurations.
497   repeated ChangeReport change_reports = 3;
498
499   // Errors / Linter warnings associated with the service definition this
500   // report
501   // belongs to.
502   repeated Diagnostic diagnostics = 4;
503 }