275 lines
12 KiB
YAML
275 lines
12 KiB
YAML
type: google.api.Service
|
|
config_version: 3
|
|
name: servicemanagement.googleapis.com
|
|
title: Service Management API
|
|
|
|
apis:
|
|
- name: google.api.servicemanagement.v1.ServiceManager
|
|
- name: google.iam.v1.IAMPolicy
|
|
- name: google.longrunning.Operations
|
|
|
|
types:
|
|
- name: google.api.servicemanagement.v1.ConfigRef
|
|
- name: google.api.servicemanagement.v1.ConfigSource
|
|
- name: google.api.servicemanagement.v1.EnableServiceResponse
|
|
- name: google.api.servicemanagement.v1.OperationMetadata
|
|
- name: google.api.servicemanagement.v1.Rollout
|
|
- name: google.api.servicemanagement.v1.SubmitConfigSourceResponse
|
|
- name: google.api.servicemanagement.v1.UndeleteServiceResponse
|
|
|
|
documentation:
|
|
summary: |-
|
|
Google Service Management allows service producers to publish their
|
|
services on Google Cloud Platform so that they can be discovered and used
|
|
by service consumers.
|
|
overview: |-
|
|
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)](https://cloud.google.com/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](https://cloud.google.com/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](https://cloud.google.com/service-management/reference/rest/v1/services/create), [services.delete](https://cloud.google.com/service-management/reference/rest/v1/services/delete), [services.undelete](https://cloud.google.com/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](https://cloud.google.com/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](https://cloud.google.com/service-management/reference/rest/v1/services.configs/create) or
|
|
[services.configs.submit](https://cloud.google.com/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](https://cloud.google.com/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.
|
|
rules:
|
|
- selector: google.iam.v1.IAMPolicy.GetIamPolicy
|
|
description: |-
|
|
Gets the access control policy for a resource. Returns an empty policy
|
|
if the resource exists and does not have a policy set.
|
|
|
|
- selector: google.iam.v1.IAMPolicy.SetIamPolicy
|
|
description: |-
|
|
Sets the access control policy on the specified resource. Replaces
|
|
any existing policy.
|
|
|
|
Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`
|
|
errors.
|
|
|
|
- selector: google.iam.v1.IAMPolicy.TestIamPermissions
|
|
description: |-
|
|
Returns permissions that a caller has on the specified resource. If the
|
|
resource does not exist, this will return an empty set of
|
|
permissions, not a `NOT_FOUND` error.
|
|
|
|
Note: This operation is designed to be used for building
|
|
permission-aware UIs and command-line tools, not for authorization
|
|
checking. This operation may "fail open" without warning.
|
|
|
|
- selector: google.longrunning.Operations.ListOperations
|
|
description: Lists service operations that match the specified filter in the request.
|
|
|
|
backend:
|
|
rules:
|
|
- selector: 'google.api.servicemanagement.v1.ServiceManager.*'
|
|
deadline: 10.0
|
|
- selector: google.api.servicemanagement.v1.ServiceManager.CreateService
|
|
deadline: 20.0
|
|
- selector: google.api.servicemanagement.v1.ServiceManager.CreateServiceConfig
|
|
deadline: 20.0
|
|
- selector: google.api.servicemanagement.v1.ServiceManager.SubmitConfigSource
|
|
deadline: 20.0
|
|
- selector: 'google.iam.v1.IAMPolicy.*'
|
|
deadline: 10.0
|
|
- selector: 'google.longrunning.Operations.*'
|
|
deadline: 10.0
|
|
|
|
http:
|
|
rules:
|
|
- selector: google.iam.v1.IAMPolicy.GetIamPolicy
|
|
post: '/v1/{resource=services/*}:getIamPolicy'
|
|
body: '*'
|
|
additional_bindings:
|
|
- post: '/v1/{resource=services/*/consumers/*}:getIamPolicy'
|
|
body: '*'
|
|
- selector: google.iam.v1.IAMPolicy.SetIamPolicy
|
|
post: '/v1/{resource=services/*}:setIamPolicy'
|
|
body: '*'
|
|
additional_bindings:
|
|
- post: '/v1/{resource=services/*/consumers/*}:setIamPolicy'
|
|
body: '*'
|
|
- selector: google.iam.v1.IAMPolicy.TestIamPermissions
|
|
post: '/v1/{resource=services/*}:testIamPermissions'
|
|
body: '*'
|
|
additional_bindings:
|
|
- post: '/v1/{resource=services/*/consumers/*}:testIamPermissions'
|
|
body: '*'
|
|
- selector: google.longrunning.Operations.ListOperations
|
|
get: /v1/operations
|
|
|
|
authentication:
|
|
rules:
|
|
- selector: 'google.api.servicemanagement.v1.ServiceManager.*'
|
|
oauth:
|
|
canonical_scopes: |-
|
|
https://www.googleapis.com/auth/cloud-platform,
|
|
https://www.googleapis.com/auth/service.management
|
|
- selector: google.api.servicemanagement.v1.ServiceManager.GetService
|
|
oauth:
|
|
canonical_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
|
|
- selector: google.api.servicemanagement.v1.ServiceManager.GetServiceConfig
|
|
oauth:
|
|
canonical_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
|
|
- selector: google.api.servicemanagement.v1.ServiceManager.GetServiceRollout
|
|
oauth:
|
|
canonical_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
|
|
- selector: google.api.servicemanagement.v1.ServiceManager.ListServiceConfigs
|
|
oauth:
|
|
canonical_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
|
|
- selector: google.api.servicemanagement.v1.ServiceManager.ListServiceRollouts
|
|
oauth:
|
|
canonical_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
|
|
- selector: google.api.servicemanagement.v1.ServiceManager.ListServices
|
|
oauth:
|
|
canonical_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
|
|
- selector: google.iam.v1.IAMPolicy.GetIamPolicy
|
|
oauth:
|
|
canonical_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
|
|
- selector: google.iam.v1.IAMPolicy.SetIamPolicy
|
|
oauth:
|
|
canonical_scopes: |-
|
|
https://www.googleapis.com/auth/cloud-platform,
|
|
https://www.googleapis.com/auth/service.management
|
|
- selector: google.iam.v1.IAMPolicy.TestIamPermissions
|
|
oauth:
|
|
canonical_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
|
|
- selector: 'google.longrunning.Operations.*'
|
|
oauth:
|
|
canonical_scopes: |-
|
|
https://www.googleapis.com/auth/cloud-platform,
|
|
https://www.googleapis.com/auth/service.management
|