1type: google.api.Service 2config_version: 3 3name: servicemanagement.googleapis.com 4title: Service Management API 5 6apis: 7- name: google.api.servicemanagement.v1.ServiceManager 8- name: google.iam.v1.IAMPolicy 9- name: google.longrunning.Operations 10 11types: 12- name: google.api.servicemanagement.v1.ConfigRef 13- name: google.api.servicemanagement.v1.ConfigSource 14- name: google.api.servicemanagement.v1.EnableServiceResponse 15- name: google.api.servicemanagement.v1.OperationMetadata 16- name: google.api.servicemanagement.v1.Rollout 17- name: google.api.servicemanagement.v1.SubmitConfigSourceResponse 18- name: google.api.servicemanagement.v1.UndeleteServiceResponse 19 20documentation: 21 summary: |- 22 Google Service Management allows service producers to publish their 23 services on Google Cloud Platform so that they can be discovered and used 24 by service consumers. 25 overview: |- 26 Google Service Management manages a set of *services*. Service Management 27 allows *service producers* to 28 publish their services on Google Cloud Platform so that they can be 29 discovered and used by *service consumers*. It also handles the tasks of 30 tracking 31 service lifecycle and programming various backend systems -- such as 32 [Stackdriver Logging](https://cloud.google.com/stackdriver), 33 [Stackdriver Monitoring](https://cloud.google.com/stackdriver) -- to 34 support the managed services. 35 36 If you are a service producer, you can use the Google Service Management 37 API and [Google Cloud SDK (gcloud)](https://cloud.google.com/sdk) to 38 publish and manage your services. Each managed service has a service 39 configuration which declares various aspects of the service such as its 40 API surface, along with parameters to configure the supporting 41 backend 42 systems, such as logging and monitoring. If you build your service using 43 [Google Cloud Endpoints](https://cloud.google.com/endpoints/), the service 44 configuration will be handled automatically. 45 46 If you are a service consumer and want to use a managed service, you can 47 use the Google Service Management API or [Google Cloud 48 Console](https://console.cloud.google.com) to activate the service for 49 your [Google developer 50 project](https://developers.google.com/console/help/new/), then start 51 using its APIs and functions. 52 53 ## Managed services 54 55 REST URL: 56 `https://servicemanagement.googleapis.com/v1/services/{service-name}` <br 57 /> REST schema is defined 58 [here](https://cloud.google.com/service-management/reference/rest/v1/services). A 59 managed service refers to a network service managed by 60 Service Management. Each managed service has a unique name, such as 61 `example.googleapis.com`, which must be a valid fully-qualified DNS name, 62 as per RFC 1035. 63 64 A managed service typically provides some REST APIs and/or other 65 functions to their service consumers, such as mobile apps or cloud 66 services. 67 68 Service producers can use methods, such as 69 [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 70 manipulate their managed services. 71 72 ## Service producers 73 74 A service producer is the Google developer project responsible for 75 publishing and maintaining a managed service. Each managed service is 76 owned by exactly one service producer. 77 78 ## Service consumers 79 80 A service consumer is a Google developer project that has enabled and can 81 invoke APIs on a managed service. A managed service can have many service 82 consumers. 83 84 ## Service configuration 85 86 REST URL: 87 `https://servicemanagement.googleapis.com/v1/services/{service-name}/configs/{config_id}` 88 <br /> REST schema is defined 89 [here](https://cloud.google.com/service-management/reference/rest/v1/services.configs). Each 90 managed service is described by a service configuration which covers a 91 wide range of features, including its name, title, RPC API 92 definitions, 93 REST API definitions, documentation, authentication, and more. 94 95 To change the configuration of a managed service, the service producer 96 needs to publish an updated service configuration to Service 97 Management. 98 Service Management keeps a history of published 99 service configurations, making it possible to easily retrace how a 100 service's configuration evolved over time. Service configurations can be 101 published 102 using the [services.configs.create](https://cloud.google.com/service-management/reference/rest/v1/services.configs/create) or 103 [services.configs.submit](https://cloud.google.com/service-management/reference/rest/v1/services.configs/submit) methods. Alternatively, 104 `services.configs.submit` allows publishing an 105 [OpenAPI](https://github.com/OAI/OpenAPI-Specification) specification, 106 formerly known as the Swagger Specification, which is automatically 107 converted to a corresponding service configuration. 108 109 ## Service rollout 110 111 REST URL: 112 `https://servicemanagement.googleapis.com/v1/services/{service-name}/rollouts/{rollout-id}` 113 <br /> REST schema is defined 114 [here](https://cloud.google.com/service-management/reference/rest/v1/services.rollouts). A 115 `Rollout` defines how Google Service Management should deploy service 116 configurations to backend systems and how the configurations take effect 117 at runtime. It lets service producers specify multiple service 118 configuration 119 versions to be deployed together, and a strategy that indicates how they 120 should be used. 121 122 Updating a managed service's configuration can be dangerous, as a 123 configuration error can lead to a service outage. To mitigate risks, 124 Service Management 125 supports gradual rollout of service configuration changes. This feature 126 gives service producers time to identity potential issues and rollback 127 service 128 configuration changes in case of errors, thus minimizing the customer 129 impact of bad configurations. For example, you could specify that 5% of 130 traffic uses configuration 1, while the remaining 95% uses configuration 131 2. 132 133 Service Management keeps a history of rollouts so that service 134 producers can undo to previous configuration versions. You can rollback a 135 configuration by initiating a new `Rollout` that clones a previously 136 submitted rollout record. 137 rules: 138 - selector: google.iam.v1.IAMPolicy.GetIamPolicy 139 description: |- 140 Gets the access control policy for a resource. Returns an empty policy 141 if the resource exists and does not have a policy set. 142 143 - selector: google.iam.v1.IAMPolicy.SetIamPolicy 144 description: |- 145 Sets the access control policy on the specified resource. Replaces 146 any existing policy. 147 148 Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` 149 errors. 150 151 - selector: google.iam.v1.IAMPolicy.TestIamPermissions 152 description: |- 153 Returns permissions that a caller has on the specified resource. If the 154 resource does not exist, this will return an empty set of 155 permissions, not a `NOT_FOUND` error. 156 157 Note: This operation is designed to be used for building 158 permission-aware UIs and command-line tools, not for authorization 159 checking. This operation may "fail open" without warning. 160 161 - selector: google.longrunning.Operations.ListOperations 162 description: Lists service operations that match the specified filter in the request. 163 164http: 165 rules: 166 - selector: google.iam.v1.IAMPolicy.GetIamPolicy 167 post: '/v1/{resource=services/*}:getIamPolicy' 168 body: '*' 169 additional_bindings: 170 - post: '/v1/{resource=services/*/consumers/*}:getIamPolicy' 171 body: '*' 172 - selector: google.iam.v1.IAMPolicy.SetIamPolicy 173 post: '/v1/{resource=services/*}:setIamPolicy' 174 body: '*' 175 additional_bindings: 176 - post: '/v1/{resource=services/*/consumers/*}:setIamPolicy' 177 body: '*' 178 - selector: google.iam.v1.IAMPolicy.TestIamPermissions 179 post: '/v1/{resource=services/*}:testIamPermissions' 180 body: '*' 181 additional_bindings: 182 - post: '/v1/{resource=services/*/consumers/*}:testIamPermissions' 183 body: '*' 184 - selector: google.longrunning.Operations.ListOperations 185 get: /v1/operations 186 187authentication: 188 rules: 189 - selector: 'google.api.servicemanagement.v1.ServiceManager.*' 190 oauth: 191 canonical_scopes: |- 192 https://www.googleapis.com/auth/cloud-platform, 193 https://www.googleapis.com/auth/service.management 194 - selector: google.api.servicemanagement.v1.ServiceManager.GetService 195 oauth: 196 canonical_scopes: |- 197 https://www.googleapis.com/auth/cloud-platform, 198 https://www.googleapis.com/auth/cloud-platform.read-only, 199 https://www.googleapis.com/auth/service.management, 200 https://www.googleapis.com/auth/service.management.readonly 201 - selector: google.api.servicemanagement.v1.ServiceManager.GetServiceConfig 202 oauth: 203 canonical_scopes: |- 204 https://www.googleapis.com/auth/cloud-platform, 205 https://www.googleapis.com/auth/cloud-platform.read-only, 206 https://www.googleapis.com/auth/service.management, 207 https://www.googleapis.com/auth/service.management.readonly 208 - selector: google.api.servicemanagement.v1.ServiceManager.GetServiceRollout 209 oauth: 210 canonical_scopes: |- 211 https://www.googleapis.com/auth/cloud-platform, 212 https://www.googleapis.com/auth/cloud-platform.read-only, 213 https://www.googleapis.com/auth/service.management, 214 https://www.googleapis.com/auth/service.management.readonly 215 - selector: google.api.servicemanagement.v1.ServiceManager.ListServiceConfigs 216 oauth: 217 canonical_scopes: |- 218 https://www.googleapis.com/auth/cloud-platform, 219 https://www.googleapis.com/auth/cloud-platform.read-only, 220 https://www.googleapis.com/auth/service.management, 221 https://www.googleapis.com/auth/service.management.readonly 222 - selector: google.api.servicemanagement.v1.ServiceManager.ListServiceRollouts 223 oauth: 224 canonical_scopes: |- 225 https://www.googleapis.com/auth/cloud-platform, 226 https://www.googleapis.com/auth/cloud-platform.read-only, 227 https://www.googleapis.com/auth/service.management, 228 https://www.googleapis.com/auth/service.management.readonly 229 - selector: google.api.servicemanagement.v1.ServiceManager.ListServices 230 oauth: 231 canonical_scopes: |- 232 https://www.googleapis.com/auth/cloud-platform, 233 https://www.googleapis.com/auth/cloud-platform.read-only, 234 https://www.googleapis.com/auth/service.management, 235 https://www.googleapis.com/auth/service.management.readonly 236 - selector: google.iam.v1.IAMPolicy.GetIamPolicy 237 oauth: 238 canonical_scopes: |- 239 https://www.googleapis.com/auth/cloud-platform, 240 https://www.googleapis.com/auth/cloud-platform.read-only, 241 https://www.googleapis.com/auth/service.management, 242 https://www.googleapis.com/auth/service.management.readonly 243 - selector: google.iam.v1.IAMPolicy.SetIamPolicy 244 oauth: 245 canonical_scopes: |- 246 https://www.googleapis.com/auth/cloud-platform, 247 https://www.googleapis.com/auth/service.management 248 - selector: google.iam.v1.IAMPolicy.TestIamPermissions 249 oauth: 250 canonical_scopes: |- 251 https://www.googleapis.com/auth/cloud-platform, 252 https://www.googleapis.com/auth/cloud-platform.read-only, 253 https://www.googleapis.com/auth/service.management, 254 https://www.googleapis.com/auth/service.management.readonly 255 - selector: 'google.longrunning.Operations.*' 256 oauth: 257 canonical_scopes: |- 258 https://www.googleapis.com/auth/cloud-platform, 259 https://www.googleapis.com/auth/service.management 260