123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501 |
- // Copyright 2022 Google LLC
- //
- // 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/client.proto";
- import "google/api/field_behavior.proto";
- import "google/api/service.proto";
- import "google/api/servicemanagement/v1/resources.proto";
- import "google/longrunning/operations.proto";
- import "google/protobuf/any.proto";
- option csharp_namespace = "Google.Cloud.ServiceManagement.V1";
- 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";
- option php_namespace = "Google\\Cloud\\ServiceManagement\\V1";
- option ruby_package = "Google::Cloud::ServiceManagement::V1";
- // [Google Service Management
- // API](https://cloud.google.com/service-infrastructure/docs/overview)
- service ServiceManager {
- option (google.api.default_host) = "servicemanagement.googleapis.com";
- option (google.api.oauth_scopes) =
- "https://www.googleapis.com/auth/cloud-platform,"
- "https://www.googleapis.com/auth/cloud-platform.read-only,"
- "https://www.googleapis.com/auth/service.management,"
- "https://www.googleapis.com/auth/service.management.readonly";
- // Lists managed services.
- //
- // Returns all public services. For authenticated users, also returns all
- // services the calling user has "servicemanagement.services.get" permission
- // for.
- rpc ListServices(ListServicesRequest) returns (ListServicesResponse) {
- option (google.api.http) = {
- get: "/v1/services"
- };
- option (google.api.method_signature) = "producer_project_id,consumer_id";
- }
- // Gets a managed service. Authentication is required unless the service is
- // public.
- rpc GetService(GetServiceRequest) returns (ManagedService) {
- option (google.api.http) = {
- get: "/v1/services/{service_name}"
- };
- option (google.api.method_signature) = "service_name";
- }
- // Creates a new managed service.
- //
- // A managed service is immutable, and is subject to mandatory 30-day
- // data retention. You cannot move a service or recreate it within 30 days
- // after deletion.
- //
- // One producer project can own no more than 500 services. For security and
- // reliability purposes, a production service should be hosted in a
- // dedicated producer project.
- //
- // Operation<response: ManagedService>
- rpc CreateService(CreateServiceRequest)
- returns (google.longrunning.Operation) {
- option (google.api.http) = {
- post: "/v1/services"
- body: "service"
- };
- option (google.api.method_signature) = "service";
- option (google.longrunning.operation_info) = {
- response_type: "google.api.servicemanagement.v1.ManagedService"
- metadata_type: "google.api.servicemanagement.v1.OperationMetadata"
- };
- }
- // Deletes a managed service. This method will change the service to 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}"
- };
- option (google.api.method_signature) = "service_name";
- option (google.longrunning.operation_info) = {
- response_type: "google.protobuf.Empty"
- metadata_type: "google.api.servicemanagement.v1.OperationMetadata"
- };
- }
- // 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"
- };
- option (google.api.method_signature) = "service_name";
- option (google.longrunning.operation_info) = {
- response_type: "google.api.servicemanagement.v1.UndeleteServiceResponse"
- metadata_type: "google.api.servicemanagement.v1.OperationMetadata"
- };
- }
- // 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"
- };
- option (google.api.method_signature) = "service_name";
- }
- // 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}"
- additional_bindings { get: "/v1/services/{service_name}/config" }
- };
- option (google.api.method_signature) = "service_name,config_id,view";
- }
- // 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].
- //
- // Only the 100 most recent service configurations and ones referenced by
- // existing rollouts are kept for each service. The rest will be deleted
- // eventually.
- rpc CreateServiceConfig(CreateServiceConfigRequest)
- returns (google.api.Service) {
- option (google.api.http) = {
- post: "/v1/services/{service_name}/configs"
- body: "service_config"
- };
- option (google.api.method_signature) = "service_name,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].
- //
- // Only the 100 most recent configuration sources and ones referenced by
- // existing service configurtions are kept for each service. The rest will be
- // deleted eventually.
- //
- // Operation<response: SubmitConfigSourceResponse>
- rpc SubmitConfigSource(SubmitConfigSourceRequest)
- returns (google.longrunning.Operation) {
- option (google.api.http) = {
- post: "/v1/services/{service_name}/configs:submit"
- body: "*"
- };
- option (google.api.method_signature) =
- "service_name,config_source,validate_only";
- option (google.longrunning.operation_info) = {
- response_type: "google.api.servicemanagement.v1.SubmitConfigSourceResponse"
- metadata_type: "google.api.servicemanagement.v1.OperationMetadata"
- };
- }
- // 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"
- };
- option (google.api.method_signature) = "service_name,filter";
- }
- // 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}"
- };
- option (google.api.method_signature) = "service_name,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.
- //
- // Only the 100 most recent (in any state) and the last 10 successful (if not
- // already part of the set of 100 most recent) rollouts are kept for each
- // service. The rest will be deleted eventually.
- //
- // Operation<response: Rollout>
- rpc CreateServiceRollout(CreateServiceRolloutRequest)
- returns (google.longrunning.Operation) {
- option (google.api.http) = {
- post: "/v1/services/{service_name}/rollouts"
- body: "rollout"
- };
- option (google.api.method_signature) = "service_name,rollout";
- option (google.longrunning.operation_info) = {
- response_type: "google.api.servicemanagement.v1.Rollout"
- metadata_type: "google.api.servicemanagement.v1.OperationMetadata"
- };
- }
- // 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: "*"
- };
- option (google.api.method_signature) = "new_config,old_config";
- }
- }
- // Request message for `ListServices` method.
- message ListServicesRequest {
- // Include services produced by the specified project.
- string producer_project_id = 1;
- // The max number of items to include in the response list. Page size is 50
- // if not specified. Maximum value is 100.
- int32 page_size = 5;
- // Token identifying which result to start with; returned by a previous list
- // call.
- string page_token = 6;
- // Include services consumed by the specified consumer.
- //
- // The Google Service Management implementation accepts the following
- // forms:
- // - project:<project_id>
- string consumer_id = 7 [deprecated = true];
- }
- // Response message for `ListServices` method.
- message ListServicesResponse {
- // The returned services will only have the name field set.
- 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 {
- // Required. The name of the service. See the `ServiceManager` overview for
- // naming requirements. For example: `example.googleapis.com`.
- string service_name = 1 [(google.api.field_behavior) = REQUIRED];
- }
- // Request message for CreateService method.
- message CreateServiceRequest {
- // Required. Initial values for the service resource.
- ManagedService service = 1 [(google.api.field_behavior) = REQUIRED];
- }
- // Request message for DeleteService method.
- message DeleteServiceRequest {
- // Required. The name of the service. See the
- // [overview](https://cloud.google.com/service-infrastructure/docs/overview) for naming requirements. For
- // example: `example.googleapis.com`.
- string service_name = 1 [(google.api.field_behavior) = REQUIRED];
- }
- // Request message for UndeleteService method.
- message UndeleteServiceRequest {
- // Required. The name of the service. See the
- // [overview](https://cloud.google.com/service-infrastructure/docs/overview) for naming requirements. For
- // example: `example.googleapis.com`.
- string service_name = 1 [(google.api.field_behavior) = REQUIRED];
- }
- // Response message for UndeleteService method.
- message UndeleteServiceResponse {
- // Revived service resource.
- ManagedService service = 1;
- }
- // Request message for GetServiceConfig method.
- message GetServiceConfigRequest {
- enum ConfigView {
- // Server response includes all fields except SourceInfo.
- BASIC = 0;
- // Server response includes all fields including SourceInfo.
- // SourceFiles are of type 'google.api.servicemanagement.v1.ConfigFile'
- // and are only available for configs created using the
- // SubmitConfigSource method.
- FULL = 1;
- }
- // Required. The name of the service. See the
- // [overview](https://cloud.google.com/service-infrastructure/docs/overview) for naming requirements. For
- // example: `example.googleapis.com`.
- string service_name = 1 [(google.api.field_behavior) = REQUIRED];
- // Required. The id of the service configuration resource.
- //
- // This field must be specified for the server to return all fields, including
- // `SourceInfo`.
- string config_id = 2 [(google.api.field_behavior) = REQUIRED];
- // Specifies which parts of the Service Config should be returned in the
- // response.
- ConfigView view = 3;
- }
- // Request message for ListServiceConfigs method.
- message ListServiceConfigsRequest {
- // Required. The name of the service. See the
- // [overview](https://cloud.google.com/service-infrastructure/docs/overview) for naming requirements. For
- // example: `example.googleapis.com`.
- string service_name = 1 [(google.api.field_behavior) = REQUIRED];
- // The token of the page to retrieve.
- string page_token = 2;
- // The max number of items to include in the response list. Page size is 50
- // if not specified. Maximum value is 100.
- 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 {
- // Required. The name of the service. See the
- // [overview](https://cloud.google.com/service-infrastructure/docs/overview) for naming requirements. For
- // example: `example.googleapis.com`.
- string service_name = 1 [(google.api.field_behavior) = REQUIRED];
- // Required. The service configuration resource.
- google.api.Service service_config = 2
- [(google.api.field_behavior) = REQUIRED];
- }
- // Request message for SubmitConfigSource method.
- message SubmitConfigSourceRequest {
- // Required. The name of the service. See the
- // [overview](https://cloud.google.com/service-infrastructure/docs/overview) for naming requirements. For
- // example: `example.googleapis.com`.
- string service_name = 1 [(google.api.field_behavior) = REQUIRED];
- // Required. The source configuration for the service.
- ConfigSource config_source = 2 [(google.api.field_behavior) = REQUIRED];
- // 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 [(google.api.field_behavior) = OPTIONAL];
- }
- // Response message for SubmitConfigSource method.
- message SubmitConfigSourceResponse {
- // The generated service configuration.
- google.api.Service service_config = 1;
- }
- // Request message for 'CreateServiceRollout'
- message CreateServiceRolloutRequest {
- // Required. The name of the service. See the
- // [overview](https://cloud.google.com/service-infrastructure/docs/overview) for naming requirements. For
- // example: `example.googleapis.com`.
- string service_name = 1 [(google.api.field_behavior) = REQUIRED];
- // Required. The rollout resource. The `service_name` field is output only.
- Rollout rollout = 2 [(google.api.field_behavior) = REQUIRED];
- }
- // Request message for 'ListServiceRollouts'
- message ListServiceRolloutsRequest {
- // Required. The name of the service. See the
- // [overview](https://cloud.google.com/service-infrastructure/docs/overview) for naming requirements. For
- // example: `example.googleapis.com`.
- string service_name = 1 [(google.api.field_behavior) = REQUIRED];
- // The token of the page to retrieve.
- string page_token = 2;
- // The max number of items to include in the response list. Page size is 50
- // if not specified. Maximum value is 100.
- int32 page_size = 3;
- // Required. Use `filter` to return subset of rollouts.
- // The following filters are supported:
- // -- To limit the results to only those in
- // status (google.api.servicemanagement.v1.RolloutStatus) 'SUCCESS',
- // use filter='status=SUCCESS'
- // -- To limit the results to those in
- // status (google.api.servicemanagement.v1.RolloutStatus) 'CANCELLED'
- // or 'FAILED', use filter='status=CANCELLED OR status=FAILED'
- string filter = 4 [(google.api.field_behavior) = REQUIRED];
- }
- // 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 {
- // Required. The name of the service. See the
- // [overview](https://cloud.google.com/service-infrastructure/docs/overview) for naming requirements. For
- // example: `example.googleapis.com`.
- string service_name = 1 [(google.api.field_behavior) = REQUIRED];
- // Required. The id of the rollout resource.
- string rollout_id = 2 [(google.api.field_behavior) = REQUIRED];
- }
- // Request message for GenerateConfigReport method.
- message GenerateConfigReportRequest {
- // Required. 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 [(google.api.field_behavior) = REQUIRED];
- // Optional. 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 [(google.api.field_behavior) = OPTIONAL];
- }
- // 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;
- }
|