Name Date Size #Lines LOC

..--

v1/H25-Apr-2025-1,4891,297

BUILD.bazelH A D25-Apr-20251.6 KiB4236

README.mdH A D25-Apr-20255 KiB10281

README.md

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