|  | // Copyright 2016 Google Inc. | 
|  | // | 
|  | // Licensed under the Apache License, Version 2.0 (the "License"); | 
|  | // you may not use this file except in compliance with the License. | 
|  | // You may obtain a copy of the License at | 
|  | // | 
|  | //     http://www.apache.org/licenses/LICENSE-2.0 | 
|  | // | 
|  | // Unless required by applicable law or agreed to in writing, software | 
|  | // distributed under the License is distributed on an "AS IS" BASIS, | 
|  | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
|  | // See the License for the specific language governing permissions and | 
|  | // limitations under the License. | 
|  |  | 
|  | syntax = "proto3"; | 
|  |  | 
|  | package google.api.servicemanagement.v1; | 
|  |  | 
|  | import "google/api/annotations.proto"; | 
|  | import "google/api/service.proto"; | 
|  | import "google/api/servicemanagement/v1/resources.proto"; | 
|  | import "google/longrunning/operations.proto"; | 
|  | import "google/protobuf/any.proto"; | 
|  | import "google/protobuf/empty.proto"; | 
|  | import "google/protobuf/field_mask.proto"; | 
|  | import "google/protobuf/struct.proto"; | 
|  | import "google/rpc/status.proto"; | 
|  |  | 
|  | option go_package = "google.golang.org/genproto/googleapis/api/servicemanagement/v1;servicemanagement"; | 
|  | option java_multiple_files = true; | 
|  | option java_outer_classname = "ServiceManagerProto"; | 
|  | option java_package = "com.google.api.servicemanagement.v1"; | 
|  | option objc_class_prefix = "GASM"; | 
|  |  | 
|  |  | 
|  | // [Google Service Management API](/service-management/overview) | 
|  | service ServiceManager { | 
|  | // Lists all managed services. | 
|  | rpc ListServices(ListServicesRequest) returns (ListServicesResponse) { | 
|  | option (google.api.http) = { get: "/v1/services" }; | 
|  | } | 
|  |  | 
|  | // Gets a managed service. | 
|  | rpc GetService(GetServiceRequest) returns (ManagedService) { | 
|  | option (google.api.http) = { get: "/v1/services/{service_name}" }; | 
|  | } | 
|  |  | 
|  | // Creates a new managed service. | 
|  | // Please note one producer project can own no more than 20 services. | 
|  | // | 
|  | // Operation<response: ManagedService> | 
|  | rpc CreateService(CreateServiceRequest) returns (google.longrunning.Operation) { | 
|  | option (google.api.http) = { post: "/v1/services" body: "service" }; | 
|  | } | 
|  |  | 
|  | // Deletes a managed service. This method will change the serivce in the | 
|  | // `Soft-Delete` state for 30 days. Within this period, service producers may | 
|  | // call [UndeleteService][google.api.servicemanagement.v1.ServiceManager.UndeleteService] to restore the service. | 
|  | // After 30 days, the service will be permanently deleted. | 
|  | // | 
|  | // Operation<response: google.protobuf.Empty> | 
|  | rpc DeleteService(DeleteServiceRequest) returns (google.longrunning.Operation) { | 
|  | option (google.api.http) = { delete: "/v1/services/{service_name}" }; | 
|  | } | 
|  |  | 
|  | // Revives a previously deleted managed service. The method restores the | 
|  | // service using the configuration at the time the service was deleted. | 
|  | // The target service must exist and must have been deleted within the | 
|  | // last 30 days. | 
|  | // | 
|  | // Operation<response: UndeleteServiceResponse> | 
|  | rpc UndeleteService(UndeleteServiceRequest) returns (google.longrunning.Operation) { | 
|  | option (google.api.http) = { post: "/v1/services/{service_name}:undelete" body: "" }; | 
|  | } | 
|  |  | 
|  | // Lists the history of the service configuration for a managed service, | 
|  | // from the newest to the oldest. | 
|  | rpc ListServiceConfigs(ListServiceConfigsRequest) returns (ListServiceConfigsResponse) { | 
|  | option (google.api.http) = { get: "/v1/services/{service_name}/configs" }; | 
|  | } | 
|  |  | 
|  | // Gets a service configuration (version) for a managed service. | 
|  | rpc GetServiceConfig(GetServiceConfigRequest) returns (google.api.Service) { | 
|  | option (google.api.http) = { get: "/v1/services/{service_name}/configs/{config_id}" }; | 
|  | } | 
|  |  | 
|  | // Creates a new service configuration (version) for a managed service. | 
|  | // This method only stores the service configuration. To roll out the service | 
|  | // configuration to backend systems please call | 
|  | // [CreateServiceRollout][google.api.servicemanagement.v1.ServiceManager.CreateServiceRollout]. | 
|  | rpc CreateServiceConfig(CreateServiceConfigRequest) returns (google.api.Service) { | 
|  | option (google.api.http) = { post: "/v1/services/{service_name}/configs" body: "service_config" }; | 
|  | } | 
|  |  | 
|  | // Creates a new service configuration (version) for a managed service based | 
|  | // on | 
|  | // user-supplied configuration source files (for example: OpenAPI | 
|  | // Specification). This method stores the source configurations as well as the | 
|  | // generated service configuration. To rollout the service configuration to | 
|  | // other services, | 
|  | // please call [CreateServiceRollout][google.api.servicemanagement.v1.ServiceManager.CreateServiceRollout]. | 
|  | // | 
|  | // Operation<response: SubmitConfigSourceResponse> | 
|  | rpc SubmitConfigSource(SubmitConfigSourceRequest) returns (google.longrunning.Operation) { | 
|  | option (google.api.http) = { post: "/v1/services/{service_name}/configs:submit" body: "*" }; | 
|  | } | 
|  |  | 
|  | // Lists the history of the service configuration rollouts for a managed | 
|  | // service, from the newest to the oldest. | 
|  | rpc ListServiceRollouts(ListServiceRolloutsRequest) returns (ListServiceRolloutsResponse) { | 
|  | option (google.api.http) = { get: "/v1/services/{service_name}/rollouts" }; | 
|  | } | 
|  |  | 
|  | // Gets a service configuration [rollout][google.api.servicemanagement.v1.Rollout]. | 
|  | rpc GetServiceRollout(GetServiceRolloutRequest) returns (Rollout) { | 
|  | option (google.api.http) = { get: "/v1/services/{service_name}/rollouts/{rollout_id}" }; | 
|  | } | 
|  |  | 
|  | // Creates a new service configuration rollout. Based on rollout, the | 
|  | // Google Service Management will roll out the service configurations to | 
|  | // different backend services. For example, the logging configuration will be | 
|  | // pushed to Google Cloud Logging. | 
|  | // | 
|  | // Please note that any previous pending and running Rollouts and associated | 
|  | // Operations will be automatically cancelled so that the latest Rollout will | 
|  | // not be blocked by previous Rollouts. | 
|  | // | 
|  | // Operation<response: Rollout> | 
|  | rpc CreateServiceRollout(CreateServiceRolloutRequest) returns (google.longrunning.Operation) { | 
|  | option (google.api.http) = { post: "/v1/services/{service_name}/rollouts" body: "rollout" }; | 
|  | } | 
|  |  | 
|  | // Generates and returns a report (errors, warnings and changes from | 
|  | // existing configurations) associated with | 
|  | // GenerateConfigReportRequest.new_value | 
|  | // | 
|  | // If GenerateConfigReportRequest.old_value is specified, | 
|  | // GenerateConfigReportRequest will contain a single ChangeReport based on the | 
|  | // comparison between GenerateConfigReportRequest.new_value and | 
|  | // GenerateConfigReportRequest.old_value. | 
|  | // If GenerateConfigReportRequest.old_value is not specified, this method | 
|  | // will compare GenerateConfigReportRequest.new_value with the last pushed | 
|  | // service configuration. | 
|  | rpc GenerateConfigReport(GenerateConfigReportRequest) returns (GenerateConfigReportResponse) { | 
|  | option (google.api.http) = { post: "/v1/services:generateConfigReport" body: "*" }; | 
|  | } | 
|  |  | 
|  | // Enable a managed service for a project with default setting. | 
|  | // | 
|  | // Operation<response: EnableServiceResponse> | 
|  | // | 
|  | // [google.rpc.Status][google.rpc.Status] errors may contain a | 
|  | // [google.rpc.PreconditionFailure][] error detail. | 
|  | rpc EnableService(EnableServiceRequest) returns (google.longrunning.Operation) { | 
|  | option (google.api.http) = { post: "/v1/services/{service_name}:enable" body: "*" }; | 
|  | } | 
|  |  | 
|  | // Disable a managed service for a project. | 
|  | // | 
|  | // Operation<response: DisableServiceResponse> | 
|  | rpc DisableService(DisableServiceRequest) returns (google.longrunning.Operation) { | 
|  | option (google.api.http) = { post: "/v1/services/{service_name}:disable" body: "*" }; | 
|  | } | 
|  | } | 
|  |  | 
|  | // Request message for `ListServices` method. | 
|  | message ListServicesRequest { | 
|  | // Include services produced by the specified project. | 
|  | string producer_project_id = 1; | 
|  |  | 
|  | // Requested size of the next page of data. | 
|  | int32 page_size = 5; | 
|  |  | 
|  | // Token identifying which result to start with; returned by a previous list | 
|  | // call. | 
|  | string page_token = 6; | 
|  | } | 
|  |  | 
|  | // Response message for `ListServices` method. | 
|  | message ListServicesResponse { | 
|  | // The results of the query. | 
|  | repeated ManagedService services = 1; | 
|  |  | 
|  | // Token that can be passed to `ListServices` to resume a paginated query. | 
|  | string next_page_token = 2; | 
|  | } | 
|  |  | 
|  | // Request message for `GetService` method. | 
|  | message GetServiceRequest { | 
|  | // The name of the service.  See the `ServiceManager` overview for naming | 
|  | // requirements.  For example: `example.googleapis.com`. | 
|  | string service_name = 1; | 
|  | } | 
|  |  | 
|  | // Request message for CreateService method. | 
|  | message CreateServiceRequest { | 
|  | // Initial values for the service resource. | 
|  | ManagedService service = 1; | 
|  | } | 
|  |  | 
|  | // Request message for DeleteService method. | 
|  | message DeleteServiceRequest { | 
|  | // The name of the service.  See the [overview](/service-management/overview) | 
|  | // for naming requirements.  For example: `example.googleapis.com`. | 
|  | string service_name = 1; | 
|  | } | 
|  |  | 
|  | // Request message for UndeleteService method. | 
|  | message UndeleteServiceRequest { | 
|  | // The name of the service. See the [overview](/service-management/overview) | 
|  | // for naming requirements. For example: `example.googleapis.com`. | 
|  | string service_name = 1; | 
|  | } | 
|  |  | 
|  | // Response message for UndeleteService method. | 
|  | message UndeleteServiceResponse { | 
|  | // Revived service resource. | 
|  | ManagedService service = 1; | 
|  | } | 
|  |  | 
|  | // Request message for GetServiceConfig method. | 
|  | message GetServiceConfigRequest { | 
|  | // The name of the service.  See the [overview](/service-management/overview) | 
|  | // for naming requirements.  For example: `example.googleapis.com`. | 
|  | string service_name = 1; | 
|  |  | 
|  | string config_id = 2; | 
|  | } | 
|  |  | 
|  | // Request message for ListServiceConfigs method. | 
|  | message ListServiceConfigsRequest { | 
|  | // The name of the service.  See the [overview](/service-management/overview) | 
|  | // for naming requirements.  For example: `example.googleapis.com`. | 
|  | string service_name = 1; | 
|  |  | 
|  | // The token of the page to retrieve. | 
|  | string page_token = 2; | 
|  |  | 
|  | // The max number of items to include in the response list. | 
|  | int32 page_size = 3; | 
|  | } | 
|  |  | 
|  | // Response message for ListServiceConfigs method. | 
|  | message ListServiceConfigsResponse { | 
|  | // The list of service configuration resources. | 
|  | repeated google.api.Service service_configs = 1; | 
|  |  | 
|  | // The token of the next page of results. | 
|  | string next_page_token = 2; | 
|  | } | 
|  |  | 
|  | // Request message for CreateServiceConfig method. | 
|  | message CreateServiceConfigRequest { | 
|  | // The name of the service.  See the [overview](/service-management/overview) | 
|  | // for naming requirements.  For example: `example.googleapis.com`. | 
|  | string service_name = 1; | 
|  |  | 
|  | // The service configuration resource. | 
|  | google.api.Service service_config = 2; | 
|  | } | 
|  |  | 
|  | // Request message for SubmitConfigSource method. | 
|  | message SubmitConfigSourceRequest { | 
|  | // The name of the service.  See the [overview](/service-management/overview) | 
|  | // for naming requirements.  For example: `example.googleapis.com`. | 
|  | string service_name = 1; | 
|  |  | 
|  | // The source configuration for the service. | 
|  | ConfigSource config_source = 2; | 
|  |  | 
|  | // Optional. If set, this will result in the generation of a | 
|  | // `google.api.Service` configuration based on the `ConfigSource` provided, | 
|  | // but the generated config and the sources will NOT be persisted. | 
|  | bool validate_only = 3; | 
|  | } | 
|  |  | 
|  | // Response message for SubmitConfigSource method. | 
|  | message SubmitConfigSourceResponse { | 
|  | // The generated service configuration. | 
|  | google.api.Service service_config = 1; | 
|  | } | 
|  |  | 
|  | // Request message for 'CreateServiceRollout' | 
|  | message CreateServiceRolloutRequest { | 
|  | // The name of the service.  See the [overview](/service-management/overview) | 
|  | // for naming requirements.  For example: `example.googleapis.com`. | 
|  | string service_name = 1; | 
|  |  | 
|  | // The rollout resource. The `service_name` field is output only. | 
|  | Rollout rollout = 2; | 
|  | } | 
|  |  | 
|  | // Request message for 'ListServiceRollouts' | 
|  | message ListServiceRolloutsRequest { | 
|  | // The name of the service.  See the [overview](/service-management/overview) | 
|  | // for naming requirements.  For example: `example.googleapis.com`. | 
|  | string service_name = 1; | 
|  |  | 
|  | // The token of the page to retrieve. | 
|  | string page_token = 2; | 
|  |  | 
|  | // The max number of items to include in the response list. | 
|  | int32 page_size = 3; | 
|  | } | 
|  |  | 
|  | // Response message for ListServiceRollouts method. | 
|  | message ListServiceRolloutsResponse { | 
|  | // The list of rollout resources. | 
|  | repeated Rollout rollouts = 1; | 
|  |  | 
|  | // The token of the next page of results. | 
|  | string next_page_token = 2; | 
|  | } | 
|  |  | 
|  | // Request message for GetServiceRollout method. | 
|  | message GetServiceRolloutRequest { | 
|  | // The name of the service.  See the [overview](/service-management/overview) | 
|  | // for naming requirements.  For example: `example.googleapis.com`. | 
|  | string service_name = 1; | 
|  |  | 
|  | // The id of the rollout resource. | 
|  | string rollout_id = 2; | 
|  | } | 
|  |  | 
|  | // Request message for EnableService method. | 
|  | message EnableServiceRequest { | 
|  | // Name of the service to enable. Specifying an unknown service name will | 
|  | // cause the request to fail. | 
|  | string service_name = 1; | 
|  |  | 
|  | // The identity of consumer resource which service enablement will be | 
|  | // applied to. | 
|  | // | 
|  | // The Google Service Management implementation accepts the following | 
|  | // forms: "project:<project_id>", "project_number:<project_number>". | 
|  | // | 
|  | // Note: this is made compatible with | 
|  | // google.api.servicecontrol.v1.Operation.consumer_id. | 
|  | string consumer_id = 2; | 
|  | } | 
|  |  | 
|  | // Request message for DisableService method. | 
|  | message DisableServiceRequest { | 
|  | // Name of the service to disable. Specifying an unknown service name | 
|  | // will cause the request to fail. | 
|  | string service_name = 1; | 
|  |  | 
|  | // The identity of consumer resource which service disablement will be | 
|  | // applied to. | 
|  | // | 
|  | // The Google Service Management implementation accepts the following | 
|  | // forms: "project:<project_id>", "project_number:<project_number>". | 
|  | // | 
|  | // Note: this is made compatible with | 
|  | // google.api.servicecontrol.v1.Operation.consumer_id. | 
|  | string consumer_id = 2; | 
|  | } | 
|  |  | 
|  | // Request message for GenerateConfigReport method. | 
|  | message GenerateConfigReportRequest { | 
|  | // Service configuration for which we want to generate the report. | 
|  | // For this version of API, the supported types are | 
|  | // [google.api.servicemanagement.v1.ConfigRef][google.api.servicemanagement.v1.ConfigRef], | 
|  | // [google.api.servicemanagement.v1.ConfigSource][google.api.servicemanagement.v1.ConfigSource], | 
|  | // and [google.api.Service][google.api.Service] | 
|  | google.protobuf.Any new_config = 1; | 
|  |  | 
|  | // Service configuration against which the comparison will be done. | 
|  | // For this version of API, the supported types are | 
|  | // [google.api.servicemanagement.v1.ConfigRef][google.api.servicemanagement.v1.ConfigRef], | 
|  | // [google.api.servicemanagement.v1.ConfigSource][google.api.servicemanagement.v1.ConfigSource], | 
|  | // and [google.api.Service][google.api.Service] | 
|  | google.protobuf.Any old_config = 2; | 
|  | } | 
|  |  | 
|  | // Response message for GenerateConfigReport method. | 
|  | message GenerateConfigReportResponse { | 
|  | // Name of the service this report belongs to. | 
|  | string service_name = 1; | 
|  |  | 
|  | // ID of the service configuration this report belongs to. | 
|  | string id = 2; | 
|  |  | 
|  | // list of ChangeReport, each corresponding to comparison between two | 
|  | // service configurations. | 
|  | repeated ChangeReport change_reports = 3; | 
|  |  | 
|  | // Errors / Linter warnings associated with the service definition this | 
|  | // report | 
|  | // belongs to. | 
|  | repeated Diagnostic diagnostics = 4; | 
|  | } |