xref: /aosp_15_r20/external/googleapis/google/api/servicemanagement/README.md (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
1*d5c09012SAndroid Build Coastguard WorkerGoogle Service Management manages a set of *services*. Service
2*d5c09012SAndroid Build Coastguard WorkerManagement allows *service producers* to
3*d5c09012SAndroid Build Coastguard Workerpublish their services on Google Cloud Platform so that they can be discovered
4*d5c09012SAndroid Build Coastguard Workerand used by *service consumers*. It also handles the tasks of tracking
5*d5c09012SAndroid Build Coastguard Workerservice lifecycle and programming various backend systems -- such as
6*d5c09012SAndroid Build Coastguard Worker[Stackdriver Logging](https://cloud.google.com/stackdriver),
7*d5c09012SAndroid Build Coastguard Worker[Stackdriver Monitoring](https://cloud.google.com/stackdriver) -- to support
8*d5c09012SAndroid Build Coastguard Workerthe managed services.
9*d5c09012SAndroid Build Coastguard Worker
10*d5c09012SAndroid Build Coastguard WorkerIf you are a service producer, you can use the Google Service Management API
11*d5c09012SAndroid Build Coastguard Workerand [Google Cloud SDK (gcloud)](/sdk) to publish and manage your services.
12*d5c09012SAndroid Build Coastguard WorkerEach managed service has a service configuration which declares various aspects
13*d5c09012SAndroid Build Coastguard Workerof the service such as its API surface, along with parameters to configure the
14*d5c09012SAndroid Build Coastguard Workersupporting backend
15*d5c09012SAndroid Build Coastguard Workersystems, such as logging and monitoring. If you build your service using
16*d5c09012SAndroid Build Coastguard Worker[Google Cloud Endpoints](https://cloud.google.com/endpoints/), the service
17*d5c09012SAndroid Build Coastguard Workerconfiguration will be handled automatically.
18*d5c09012SAndroid Build Coastguard Worker
19*d5c09012SAndroid Build Coastguard WorkerIf you are a service consumer and want to use a managed service, you can use the
20*d5c09012SAndroid Build Coastguard WorkerGoogle Service Management API or [Google Cloud Console](https://console.cloud.google.com)
21*d5c09012SAndroid Build Coastguard Workerto activate the
22*d5c09012SAndroid Build Coastguard Workerservice for your [Google developer project](https://developers.google.com/console/help/new/),
23*d5c09012SAndroid Build Coastguard Workerthen start using its APIs and functions.
24*d5c09012SAndroid Build Coastguard Worker
25*d5c09012SAndroid Build Coastguard Worker## Managed services
26*d5c09012SAndroid Build Coastguard Worker
27*d5c09012SAndroid Build Coastguard WorkerREST URL: `https://servicemanagement.googleapis.com/v1/services/{service-name}` <br />
28*d5c09012SAndroid Build Coastguard WorkerREST schema is defined [here](/service-management/reference/rest/v1/services).
29*d5c09012SAndroid Build Coastguard Worker
30*d5c09012SAndroid Build Coastguard WorkerA managed service refers to a network service managed by
31*d5c09012SAndroid Build Coastguard WorkerService Management. Each managed service has a unique name, such as
32*d5c09012SAndroid Build Coastguard Worker`example.googleapis.com`, which must be a valid fully-qualified DNS name, as per
33*d5c09012SAndroid Build Coastguard WorkerRFC 1035.
34*d5c09012SAndroid Build Coastguard Worker
35*d5c09012SAndroid Build Coastguard WorkerA managed service typically provides some REST APIs and/or other
36*d5c09012SAndroid Build Coastguard Workerfunctions to their service consumers, such as mobile apps or cloud services.
37*d5c09012SAndroid Build Coastguard Worker
38*d5c09012SAndroid Build Coastguard WorkerService producers can use methods, such as
39*d5c09012SAndroid Build Coastguard Worker[services.create](/service-management/reference/rest/v1/services/create),
40*d5c09012SAndroid Build Coastguard Worker[services.delete](/service-management/reference/rest/v1/services/delete),
41*d5c09012SAndroid Build Coastguard Worker[services.undelete](/service-management/reference/rest/v1/services/undelete),
42*d5c09012SAndroid Build Coastguard Workerto manipulate their managed services.
43*d5c09012SAndroid Build Coastguard Worker
44*d5c09012SAndroid Build Coastguard Worker## Service producers
45*d5c09012SAndroid Build Coastguard Worker
46*d5c09012SAndroid Build Coastguard WorkerA service producer is the Google developer project responsible for publishing
47*d5c09012SAndroid Build Coastguard Workerand maintaining a managed service. Each managed service is owned by exactly one
48*d5c09012SAndroid Build Coastguard Workerservice producer.
49*d5c09012SAndroid Build Coastguard Worker
50*d5c09012SAndroid Build Coastguard Worker## Service consumers
51*d5c09012SAndroid Build Coastguard Worker
52*d5c09012SAndroid Build Coastguard WorkerA service consumer is a Google developer project that has enabled and can
53*d5c09012SAndroid Build Coastguard Workerinvoke APIs on a managed service. A managed service can have many service
54*d5c09012SAndroid Build Coastguard Workerconsumers.
55*d5c09012SAndroid Build Coastguard Worker
56*d5c09012SAndroid Build Coastguard Worker## Service configuration
57*d5c09012SAndroid Build Coastguard Worker
58*d5c09012SAndroid Build Coastguard WorkerREST URL: `https://servicemanagement.googleapis.com/v1/services/{service-name}/configs/{config_id}` <br />
59*d5c09012SAndroid Build Coastguard WorkerREST schema is defined [here](/service-management/reference/rest/v1/services.configs).
60*d5c09012SAndroid Build Coastguard Worker
61*d5c09012SAndroid Build Coastguard WorkerEach managed service is described by a service configuration which covers a wide
62*d5c09012SAndroid Build Coastguard Workerrange of features, including its name, title, RPC API definitions,
63*d5c09012SAndroid Build Coastguard WorkerREST API definitions, documentation, authentication, and more.
64*d5c09012SAndroid Build Coastguard Worker
65*d5c09012SAndroid Build Coastguard WorkerTo change the configuration of a managed service, the service producer needs to
66*d5c09012SAndroid Build Coastguard Workerpublish an updated service configuration to Service Management.
67*d5c09012SAndroid Build Coastguard WorkerService Management keeps a history of published
68*d5c09012SAndroid Build Coastguard Workerservice configurations, making it possible to easily retrace how a service's
69*d5c09012SAndroid Build Coastguard Workerconfiguration evolved over time. Service configurations can be published using
70*d5c09012SAndroid Build Coastguard Workerthe
71*d5c09012SAndroid Build Coastguard Worker[services.configs.create](/service-management/reference/rest/v1/services.configs/create)
72*d5c09012SAndroid Build Coastguard Workeror [services.configs.submit](/service-management/reference/rest/v1/services.configs/submit)
73*d5c09012SAndroid Build Coastguard Workermethods.
74*d5c09012SAndroid Build Coastguard Worker
75*d5c09012SAndroid Build Coastguard WorkerAlternatively, `services.configs.submit` allows publishing an
76*d5c09012SAndroid Build Coastguard Worker[OpenAPI](https://github.com/OAI/OpenAPI-Specification) specification, formerly
77*d5c09012SAndroid Build Coastguard Workerknown as the Swagger Specification, which is automatically converted to a
78*d5c09012SAndroid Build Coastguard Workercorresponding service configuration.
79*d5c09012SAndroid Build Coastguard Worker
80*d5c09012SAndroid Build Coastguard Worker## Service rollout
81*d5c09012SAndroid Build Coastguard Worker
82*d5c09012SAndroid Build Coastguard WorkerREST URL: `https://servicemanagement.googleapis.com/v1/services/{service-name}/rollouts/{rollout-id}` <br />
83*d5c09012SAndroid Build Coastguard WorkerREST schema is defined [here](/service-management/reference/rest/v1/services.rollouts).
84*d5c09012SAndroid Build Coastguard Worker
85*d5c09012SAndroid Build Coastguard WorkerA `Rollout` defines how Google Service Management should deploy service
86*d5c09012SAndroid Build Coastguard Workerconfigurations to backend systems and how the configurations take effect at
87*d5c09012SAndroid Build Coastguard Workerruntime. It lets service producers specify multiple service configuration
88*d5c09012SAndroid Build Coastguard Workerversions to be deployed together, and a strategy that indicates how they
89*d5c09012SAndroid Build Coastguard Workershould be used.
90*d5c09012SAndroid Build Coastguard Worker
91*d5c09012SAndroid Build Coastguard WorkerUpdating a managed service's configuration can be dangerous, as a configuration
92*d5c09012SAndroid Build Coastguard Workererror can lead to a service outage. To mitigate risks, Service Management
93*d5c09012SAndroid Build Coastguard Workersupports gradual rollout of service configuration changes. This feature gives
94*d5c09012SAndroid Build Coastguard Workerservice producers time to identity potential issues and rollback service
95*d5c09012SAndroid Build Coastguard Workerconfiguration changes in case of errors, thus minimizing the customer
96*d5c09012SAndroid Build Coastguard Workerimpact of bad configurations. For example, you could specify that 5% of traffic
97*d5c09012SAndroid Build Coastguard Workeruses configuration 1, while the remaining 95% uses configuration 2.
98*d5c09012SAndroid Build Coastguard Worker
99*d5c09012SAndroid Build Coastguard WorkerService Management keeps a history of rollouts so that service
100*d5c09012SAndroid Build Coastguard Workerproducers can undo to previous configuration versions. You can rollback a configuration
101*d5c09012SAndroid Build Coastguard Workerby initiating a new `Rollout` that clones a previously submitted
102*d5c09012SAndroid Build Coastguard Workerrollout record.