Adding Google Service Management protos
diff --git a/google/api/servicemanagement/README.md b/google/api/servicemanagement/README.md
new file mode 100644
index 0000000..e3e36df
--- /dev/null
+++ b/google/api/servicemanagement/README.md
@@ -0,0 +1,102 @@
+Google Service Management manages a set of *services*. Service
+Management allows *service producers* to
+publish their services on Google Cloud Platform so that they can be discovered
+and used by *service consumers*. It also handles the tasks of tracking
+service lifecycle and programming various backend systems -- such as
+[Stackdriver Logging](https://cloud.google.com/stackdriver),
+[Stackdriver Monitoring](https://cloud.google.com/stackdriver) -- to support
+the managed services.
+
+If you are a service producer, you can use the Google Service Management API
+and [Google Cloud SDK (gcloud)](/sdk) to publish and manage your services.
+Each managed service has a service configuration which declares various aspects
+of the service such as its API surface, along with parameters to configure the
+supporting backend
+systems, such as logging and monitoring. If you build your service using
+[Google Cloud Endpoints](https://cloud.google.com/endpoints/), the service
+configuration will be handled automatically.
+
+If you are a service consumer and want to use a managed service, you can use the
+Google Service Management API or [Google Cloud Console](https://console.cloud.google.com)
+to activate the
+service for your [Google developer project](https://developers.google.com/console/help/new/),
+then start using its APIs and functions.
+
+## Managed services
+
+REST URL: `https://servicemanagement.googleapis.com/v1/services/{service-name}` <br />
+REST schema is defined [here](/service-management/reference/rest/v1/services).
+
+A managed service refers to a network service managed by
+Service Management. Each managed service has a unique name, such as
+`example.googleapis.com`, which must be a valid fully-qualified DNS name, as per
+RFC 1035.
+
+A managed service typically provides some REST APIs and/or other
+functions to their service consumers, such as mobile apps or cloud services.
+
+Service producers can use methods, such as
+[services.create](/service-management/reference/rest/v1/services/create),
+[services.delete](/service-management/reference/rest/v1/services/delete),
+[services.undelete](/service-management/reference/rest/v1/services/undelete),
+to manipulate their managed services.
+
+## Service producers
+
+A service producer is the Google developer project responsible for publishing
+and maintaining a managed service. Each managed service is owned by exactly one
+service producer.
+
+## Service consumers
+
+A service consumer is a Google developer project that has enabled and can
+invoke APIs on a managed service. A managed service can have many service
+consumers.
+
+## Service configuration
+
+REST URL: `https://servicemanagement.googleapis.com/v1/services/{service-name}/configs/{config_id}` <br />
+REST schema is defined [here](/service-management/reference/rest/v1/services.configs).
+
+Each managed service is described by a service configuration which covers a wide
+range of features, including its name, title, RPC API definitions,
+REST API definitions, documentation, authentication, and more.
+
+To change the configuration of a managed service, the service producer needs to
+publish an updated service configuration to Service Management.
+Service Management keeps a history of published
+service configurations, making it possible to easily retrace how a service's
+configuration evolved over time. Service configurations can be published using
+the
+[services.configs.create](/service-management/reference/rest/v1/services.configs/create)
+or [services.configs.submit](/service-management/reference/rest/v1/services.configs/submit)
+methods.
+
+Alternatively, `services.configs.submit` allows publishing an
+[OpenAPI](https://github.com/OAI/OpenAPI-Specification) specification, formerly
+known as the Swagger Specification, which is automatically converted to a
+corresponding service configuration.
+
+## Service rollout
+
+REST URL: `https://servicemanagement.googleapis.com/v1/services/{service-name}/rollouts/{rollout-id}` <br />
+REST schema is defined [here](/service-management/reference/rest/v1/services.rollouts).
+
+A `Rollout` defines how Google Service Management should deploy service
+configurations to backend systems and how the configurations take effect at
+runtime. It lets service producers specify multiple service configuration
+versions to be deployed together, and a strategy that indicates how they
+should be used.
+
+Updating a managed service's configuration can be dangerous, as a configuration
+error can lead to a service outage. To mitigate risks, Service Management
+supports gradual rollout of service configuration changes. This feature gives
+service producers time to identity potential issues and rollback service
+configuration changes in case of errors, thus minimizing the customer
+impact of bad configurations. For example, you could specify that 5% of traffic
+uses configuration 1, while the remaining 95% uses configuration 2.
+
+Service Management keeps a history of rollouts so that service
+producers can undo to previous configuration versions. You can rollback a configuration
+by initiating a new `Rollout` that clones a previously submitted
+rollout record.
\ No newline at end of file
diff --git a/google/api/servicemanagement/v1/resources.proto b/google/api/servicemanagement/v1/resources.proto
new file mode 100644
index 0000000..e4735fc
--- /dev/null
+++ b/google/api/servicemanagement/v1/resources.proto
@@ -0,0 +1,284 @@
+// 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/longrunning/operations.proto";
+import "google/protobuf/any.proto";
+import "google/protobuf/field_mask.proto";
+import "google/protobuf/struct.proto";
+import "google/protobuf/timestamp.proto";
+import "google/rpc/status.proto";
+
+option java_multiple_files = true;
+option java_outer_classname = "ResourcesProto";
+option java_package = "com.google.api.servicemanagement.v1";
+option objc_class_prefix = "GASM";
+
+
+// The full representation of a Service that is managed by
+// Google Service Management.
+message ManagedService {
+ // The name of the service. See the [overview](/service-management/overview)
+ // for naming requirements.
+ string service_name = 2;
+
+ // ID of the project that produces and owns this service.
+ string producer_project_id = 3;
+}
+
+// The metadata associated with a long running operation resource.
+message OperationMetadata {
+ // Represents the status of one operation step.
+ message Step {
+ // The short description of the step.
+ string description = 2;
+
+ // The status code.
+ Status status = 4;
+ }
+
+ // Code describes the status of one operation step.
+ enum Status {
+ // Unspecifed code.
+ STATUS_UNSPECIFIED = 0;
+
+ // The step has completed without errors.
+ DONE = 1;
+
+ // The step has not started yet.
+ NOT_STARTED = 2;
+
+ // The step is in progress.
+ IN_PROGRESS = 3;
+
+ // The step has completed with errors.
+ FAILED = 4;
+
+ // The step has completed with cancellation.
+ CANCELLED = 5;
+ }
+
+ // The full name of the resources that this operation is directly
+ // associated with.
+ repeated string resource_names = 1;
+
+ // Detailed status information for each step. The order is undetermined.
+ repeated Step steps = 2;
+
+ // Percentage of completion of this operation, ranging from 0 to 100.
+ int32 progress_percentage = 3;
+
+ // The start time of the operation.
+ google.protobuf.Timestamp start_time = 4;
+}
+
+// Represents a diagnostic message (error or warning)
+message Diagnostic {
+ // The kind of diagnostic information possible.
+ enum Kind {
+ // Warnings and errors
+ WARNING = 0;
+
+ // Only errors
+ ERROR = 1;
+ }
+
+ // File name and line number of the error or warning.
+ string location = 1;
+
+ // The kind of diagnostic information provided.
+ Kind kind = 2;
+
+ // Message describing the error or warning.
+ string message = 3;
+}
+
+// Represents a source file which is used to generate the service configuration
+// defined by `google.api.Service`.
+message ConfigSource {
+ // A unique ID for a specific instance of this message, typically assigned
+ // by the client for tracking purpose. If empty, the server may choose to
+ // generate one instead.
+ string id = 5;
+
+ // Set of source configuration files that are used to generate a service
+ // configuration (`google.api.Service`).
+ repeated ConfigFile files = 2;
+}
+
+// Generic specification of a source configuration file
+message ConfigFile {
+ enum FileType {
+ // Unknown file type.
+ FILE_TYPE_UNSPECIFIED = 0;
+
+ // YAML-specification of service.
+ SERVICE_CONFIG_YAML = 1;
+
+ // OpenAPI specification, serialized in JSON.
+ OPEN_API_JSON = 2;
+
+ // OpenAPI specification, serialized in YAML.
+ OPEN_API_YAML = 3;
+
+ // FileDescriptorSet, generated by protoc.
+ //
+ // To generate, use protoc with imports and source info included.
+ // For an example test.proto file, the following command would put the value
+ // in a new file named out.pb.
+ //
+ // $protoc --include_imports --include_source_info test.proto -o out.pb
+ FILE_DESCRIPTOR_SET_PROTO = 4;
+ }
+
+ // The file name of the configuration file (full or relative path).
+ string file_path = 1;
+
+ // The bytes that constitute the file.
+ bytes file_contents = 3;
+
+ // The type of configuration file this represents.
+ FileType file_type = 4;
+}
+
+// Represents a service configuration with its name and id.
+message ConfigRef {
+ // Resource name of a service config. It must have the following
+ // format: "services/{service name}/configs/{config id}".
+ string name = 1;
+}
+
+// Change report associated with a particular service configuration.
+//
+// It contains a list of ConfigChanges based on the comparison between
+// two service configurations.
+message ChangeReport {
+ // List of changes between two service configurations.
+ // The changes will be alphabetically sorted based on the identifier
+ // of each change.
+ // A ConfigChange identifier is a dot separated path to the configuration.
+ // Example: visibility.rules[selector='LibraryService.CreateBook'].restriction
+ repeated google.api.ConfigChange config_changes = 1;
+}
+
+// A rollout resource that defines how service configuration versions are pushed
+// to control plane systems. Typically, you create a new version of the
+// service config, and then create a Rollout to push the service config.
+message Rollout {
+ // Strategy that specifies how Google Service Control should select
+ // different
+ // versions of service configurations based on traffic percentage.
+ //
+ // One example of how to gradually rollout a new service configuration using
+ // this
+ // strategy:
+ // Day 1
+ //
+ // Rollout {
+ // id: "example.googleapis.com/rollout_20160206"
+ // traffic_percent_strategy {
+ // percentages: {
+ // "example.googleapis.com/20160201": 70.00
+ // "example.googleapis.com/20160206": 30.00
+ // }
+ // }
+ // }
+ //
+ // Day 2
+ //
+ // Rollout {
+ // id: "example.googleapis.com/rollout_20160207"
+ // traffic_percent_strategy: {
+ // percentages: {
+ // "example.googleapis.com/20160206": 100.00
+ // }
+ // }
+ // }
+ message TrafficPercentStrategy {
+ // Maps service configuration IDs to their corresponding traffic percentage.
+ // Key is the service configuration ID, Value is the traffic percentage
+ // which must be greater than 0.0 and the sum must equal to 100.0.
+ map<string, double> percentages = 1;
+ }
+
+ // Strategy used to delete a service. This strategy is a placeholder only
+ // used by the system generated rollout to delete a service.
+ message DeleteServiceStrategy {
+
+ }
+
+ // Status of a Rollout.
+ enum RolloutStatus {
+ // No status specified.
+ ROLLOUT_STATUS_UNSPECIFIED = 0;
+
+ // The Rollout is in progress.
+ IN_PROGRESS = 1;
+
+ // The Rollout has completed successfully.
+ SUCCESS = 2;
+
+ // The Rollout has been cancelled. This can happen if you have overlapping
+ // Rollout pushes, and the previous ones will be cancelled.
+ CANCELLED = 3;
+
+ // The Rollout has failed. It is typically caused by configuration errors.
+ FAILED = 4;
+
+ // The Rollout has not started yet and is pending for execution.
+ PENDING = 5;
+ }
+
+ // Optional unique identifier of this Rollout. Only lower case letters, digits
+ // and '-' are allowed.
+ //
+ // If not specified by client, the server will generate one. The generated id
+ // will have the form of <date><revision number>, where "date" is the create
+ // date in ISO 8601 format. "revision number" is a monotonically increasing
+ // positive number that is reset every day for each service.
+ // An example of the generated rollout_id is '2016-02-16r1'
+ string rollout_id = 1;
+
+ // Creation time of the rollout. Readonly.
+ google.protobuf.Timestamp create_time = 2;
+
+ // The user who created the Rollout. Readonly.
+ string created_by = 3;
+
+ // The status of this rollout. Readonly. In case of a failed rollout,
+ // the system will automatically rollback to the current Rollout
+ // version. Readonly.
+ RolloutStatus status = 4;
+
+ // Strategy that defines which versions of service configurations should be
+ // pushed
+ // and how they should be used at runtime.
+ oneof strategy {
+ // Google Service Control selects service configurations based on
+ // traffic percentage.
+ TrafficPercentStrategy traffic_percent_strategy = 5;
+
+ // The strategy associated with a rollout to delete a `ManagedService`.
+ // Readonly.
+ DeleteServiceStrategy delete_service_strategy = 200;
+ }
+
+ // The name of the service associated with this Rollout.
+ string service_name = 8;
+}
diff --git a/google/api/servicemanagement/v1/servicemanager.proto b/google/api/servicemanagement/v1/servicemanager.proto
new file mode 100644
index 0000000..44dd3a1
--- /dev/null
+++ b/google/api/servicemanagement/v1/servicemanager.proto
@@ -0,0 +1,391 @@
+// 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 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: "null" };
+ }
+
+ // 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;
+}