blob: 31cfe5bad294c1de8b939b95fffa25276faa0389 [file] [log] [blame]
Jon Wayne Parrott7d5badb2016-08-16 12:44:29 -07001<html><body>
2<style>
3
4body, h1, h2, h3, div, span, p, pre, a {
5 margin: 0;
6 padding: 0;
7 border: 0;
8 font-weight: inherit;
9 font-style: inherit;
10 font-size: 100%;
11 font-family: inherit;
12 vertical-align: baseline;
13}
14
15body {
16 font-size: 13px;
17 padding: 1em;
18}
19
20h1 {
21 font-size: 26px;
22 margin-bottom: 1em;
23}
24
25h2 {
26 font-size: 24px;
27 margin-bottom: 1em;
28}
29
30h3 {
31 font-size: 20px;
32 margin-bottom: 1em;
33 margin-top: 1em;
34}
35
36pre, code {
37 line-height: 1.5;
38 font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
39}
40
41pre {
42 margin-top: 0.5em;
43}
44
45h1, h2, h3, p {
46 font-family: Arial, sans serif;
47}
48
49h1, h2, h3 {
50 border-bottom: solid #CCC 1px;
51}
52
53.toc_element {
54 margin-top: 0.5em;
55}
56
57.firstline {
58 margin-left: 2 em;
59}
60
61.method {
62 margin-top: 1em;
63 border: solid 1px #CCC;
64 padding: 1em;
65 background: #EEE;
66}
67
68.details {
69 font-weight: bold;
70 font-size: 14px;
71}
72
73</style>
74
75<h1><a href="servicemanagement_v1.html">Google Service Management API</a> . <a href="servicemanagement_v1.services.html">services</a></h1>
76<h2>Instance Methods</h2>
77<p class="toc_element">
78 <code><a href="servicemanagement_v1.services.configs.html">configs()</a></code>
79</p>
80<p class="firstline">Returns the configs Resource.</p>
81
82<p class="toc_element">
83 <code><a href="servicemanagement_v1.services.rollouts.html">rollouts()</a></code>
84</p>
85<p class="firstline">Returns the rollouts Resource.</p>
86
87<p class="toc_element">
88 <code><a href="#create">create(body, x__xgafv=None)</a></code></p>
89<p class="firstline">Creates a new managed service.</p>
90<p class="toc_element">
91 <code><a href="#delete">delete(serviceName=None, x__xgafv=None)</a></code></p>
92<p class="firstline">Deletes a managed service. This method will change the serivce in the</p>
93<p class="toc_element">
94 <code><a href="#disable">disable(serviceName=None, body, x__xgafv=None)</a></code></p>
95<p class="firstline">Disable a managed service for a project.</p>
96<p class="toc_element">
97 <code><a href="#enable">enable(serviceName=None, body, x__xgafv=None)</a></code></p>
98<p class="firstline">Enable a managed service for a project with default setting.</p>
99<p class="toc_element">
100 <code><a href="#generateConfigReport">generateConfigReport(body, x__xgafv=None)</a></code></p>
101<p class="firstline">Generates and returns a report (errors, warnings and changes from</p>
102<p class="toc_element">
103 <code><a href="#get">get(serviceName=None, x__xgafv=None)</a></code></p>
104<p class="firstline">Gets a managed service.</p>
105<p class="toc_element">
106 <code><a href="#getConfig">getConfig(serviceName=None, configId=None, x__xgafv=None)</a></code></p>
107<p class="firstline">Gets a service configuration (version) for a managed service.</p>
108<p class="toc_element">
109 <code><a href="#getIamPolicy">getIamPolicy(resource=None, body, x__xgafv=None)</a></code></p>
110<p class="firstline">Gets the access control policy for a resource.</p>
111<p class="toc_element">
112 <code><a href="#list">list(producerProjectId=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
113<p class="firstline">Lists all managed services.</p>
114<p class="toc_element">
115 <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
116<p class="firstline">Retrieves the next page of results.</p>
117<p class="toc_element">
118 <code><a href="#setIamPolicy">setIamPolicy(resource=None, body, x__xgafv=None)</a></code></p>
119<p class="firstline">Sets the access control policy on the specified resource. Replaces any</p>
120<p class="toc_element">
121 <code><a href="#testIamPermissions">testIamPermissions(resource=None, body, x__xgafv=None)</a></code></p>
122<p class="firstline">Returns permissions that a caller has on the specified resource.</p>
123<p class="toc_element">
124 <code><a href="#undelete">undelete(serviceName=None, x__xgafv=None)</a></code></p>
125<p class="firstline">Revives a previously deleted managed service. The method restores the</p>
126<h3>Method Details</h3>
127<div class="method">
128 <code class="details" id="create">create(body, x__xgafv=None)</code>
129 <pre>Creates a new managed service.
Sai Cheemalapatiea3a5e12016-10-12 14:05:53 -0700130Please note one producer project can own no more than 20 services.
Jon Wayne Parrott7d5badb2016-08-16 12:44:29 -0700131
132Operation<response: ManagedService>
133
134Args:
135 body: object, The request body. (required)
136 The object takes the form of:
137
138{ # The full representation of a Service that is managed by
139 # Google Service Management.
140 "serviceName": "A String", # The name of the service. See the [overview](/service-management/overview)
141 # for naming requirements.
142 "producerProjectId": "A String", # ID of the project that produces and owns this service.
143}
144
145 x__xgafv: string, V1 error format.
146 Allowed values
147 1 - v1 error format
148 2 - v2 error format
149
150Returns:
151 An object of the form:
152
153 { # This resource represents a long-running operation that is the result of a
154 # network API call.
155 "metadata": { # Service-specific metadata associated with the operation. It typically
156 # contains progress information and common metadata such as create time.
157 # Some services might not provide such metadata. Any method that returns a
158 # long-running operation should document the metadata type, if any.
159 "a_key": "", # Properties of the object. Contains field @type with type URL.
160 },
161 "done": True or False, # If the value is `false`, it means the operation is still in progress.
162 # If true, the operation is completed, and either `error` or `response` is
163 # available.
164 "response": { # The normal response of the operation in case of success. If the original
165 # method returns no data on success, such as `Delete`, the response is
166 # `google.protobuf.Empty`. If the original method is standard
167 # `Get`/`Create`/`Update`, the response should be the resource. For other
168 # methods, the response should have the type `XxxResponse`, where `Xxx`
169 # is the original method name. For example, if the original method name
170 # is `TakeSnapshot()`, the inferred response type is
171 # `TakeSnapshotResponse`.
172 "a_key": "", # Properties of the object. Contains field @type with type URL.
173 },
174 "name": "A String", # The server-assigned name, which is only unique within the same service that
175 # originally returns it. If you use the default HTTP mapping, the
176 # `name` should have the format of `operations/some/unique/name`.
Sai Cheemalapatidf613972016-10-21 13:59:49 -0700177 "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
Jon Wayne Parrott7d5badb2016-08-16 12:44:29 -0700178 # programming environments, including REST APIs and RPC APIs. It is used by
179 # [gRPC](https://github.com/grpc). The error model is designed to be:
180 #
181 # - Simple to use and understand for most users
182 # - Flexible enough to meet unexpected needs
183 #
184 # # Overview
185 #
186 # The `Status` message contains three pieces of data: error code, error message,
187 # and error details. The error code should be an enum value of
188 # google.rpc.Code, but it may accept additional error codes if needed. The
189 # error message should be a developer-facing English message that helps
190 # developers *understand* and *resolve* the error. If a localized user-facing
191 # error message is needed, put the localized message in the error details or
192 # localize it in the client. The optional error details may contain arbitrary
193 # information about the error. There is a predefined set of error detail types
194 # in the package `google.rpc` which can be used for common error conditions.
195 #
196 # # Language mapping
197 #
198 # The `Status` message is the logical representation of the error model, but it
199 # is not necessarily the actual wire format. When the `Status` message is
200 # exposed in different client libraries and different wire protocols, it can be
201 # mapped differently. For example, it will likely be mapped to some exceptions
202 # in Java, but more likely mapped to some error codes in C.
203 #
204 # # Other uses
205 #
206 # The error model and the `Status` message can be used in a variety of
207 # environments, either with or without APIs, to provide a
208 # consistent developer experience across different environments.
209 #
210 # Example uses of this error model include:
211 #
212 # - Partial errors. If a service needs to return partial errors to the client,
213 # it may embed the `Status` in the normal response to indicate the partial
214 # errors.
215 #
216 # - Workflow errors. A typical workflow has multiple steps. Each step may
217 # have a `Status` message for error reporting purpose.
218 #
219 # - Batch operations. If a client uses batch request and batch response, the
220 # `Status` message should be used directly inside batch response, one for
221 # each error sub-response.
222 #
223 # - Asynchronous operations. If an API call embeds asynchronous operation
224 # results in its response, the status of those operations should be
225 # represented directly using the `Status` message.
226 #
227 # - Logging. If some API errors are stored in logs, the message `Status` could
228 # be used directly after any stripping needed for security/privacy reasons.
229 "message": "A String", # A developer-facing error message, which should be in English. Any
230 # user-facing error message should be localized and sent in the
231 # google.rpc.Status.details field, or localized by the client.
232 "code": 42, # The status code, which should be an enum value of google.rpc.Code.
233 "details": [ # A list of messages that carry the error details. There will be a
234 # common set of message types for APIs to use.
235 {
236 "a_key": "", # Properties of the object. Contains field @type with type URL.
237 },
238 ],
239 },
240 }</pre>
241</div>
242
243<div class="method">
244 <code class="details" id="delete">delete(serviceName=None, x__xgafv=None)</code>
245 <pre>Deletes a managed service. This method will change the serivce in the
246`Soft-Delete` state for 30 days. Within this period, service producers may
247call UndeleteService to restore the service.
248After 30 days, the service will be permanently deleted.
249
250Operation<response: google.protobuf.Empty>
251
252Args:
253 serviceName: string, The name of the service. See the [overview](/service-management/overview)
254for naming requirements. For example: `example.googleapis.com`. (required)
255 x__xgafv: string, V1 error format.
256 Allowed values
257 1 - v1 error format
258 2 - v2 error format
259
260Returns:
261 An object of the form:
262
263 { # This resource represents a long-running operation that is the result of a
264 # network API call.
265 "metadata": { # Service-specific metadata associated with the operation. It typically
266 # contains progress information and common metadata such as create time.
267 # Some services might not provide such metadata. Any method that returns a
268 # long-running operation should document the metadata type, if any.
269 "a_key": "", # Properties of the object. Contains field @type with type URL.
270 },
271 "done": True or False, # If the value is `false`, it means the operation is still in progress.
272 # If true, the operation is completed, and either `error` or `response` is
273 # available.
274 "response": { # The normal response of the operation in case of success. If the original
275 # method returns no data on success, such as `Delete`, the response is
276 # `google.protobuf.Empty`. If the original method is standard
277 # `Get`/`Create`/`Update`, the response should be the resource. For other
278 # methods, the response should have the type `XxxResponse`, where `Xxx`
279 # is the original method name. For example, if the original method name
280 # is `TakeSnapshot()`, the inferred response type is
281 # `TakeSnapshotResponse`.
282 "a_key": "", # Properties of the object. Contains field @type with type URL.
283 },
284 "name": "A String", # The server-assigned name, which is only unique within the same service that
285 # originally returns it. If you use the default HTTP mapping, the
286 # `name` should have the format of `operations/some/unique/name`.
Sai Cheemalapatidf613972016-10-21 13:59:49 -0700287 "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
Jon Wayne Parrott7d5badb2016-08-16 12:44:29 -0700288 # programming environments, including REST APIs and RPC APIs. It is used by
289 # [gRPC](https://github.com/grpc). The error model is designed to be:
290 #
291 # - Simple to use and understand for most users
292 # - Flexible enough to meet unexpected needs
293 #
294 # # Overview
295 #
296 # The `Status` message contains three pieces of data: error code, error message,
297 # and error details. The error code should be an enum value of
298 # google.rpc.Code, but it may accept additional error codes if needed. The
299 # error message should be a developer-facing English message that helps
300 # developers *understand* and *resolve* the error. If a localized user-facing
301 # error message is needed, put the localized message in the error details or
302 # localize it in the client. The optional error details may contain arbitrary
303 # information about the error. There is a predefined set of error detail types
304 # in the package `google.rpc` which can be used for common error conditions.
305 #
306 # # Language mapping
307 #
308 # The `Status` message is the logical representation of the error model, but it
309 # is not necessarily the actual wire format. When the `Status` message is
310 # exposed in different client libraries and different wire protocols, it can be
311 # mapped differently. For example, it will likely be mapped to some exceptions
312 # in Java, but more likely mapped to some error codes in C.
313 #
314 # # Other uses
315 #
316 # The error model and the `Status` message can be used in a variety of
317 # environments, either with or without APIs, to provide a
318 # consistent developer experience across different environments.
319 #
320 # Example uses of this error model include:
321 #
322 # - Partial errors. If a service needs to return partial errors to the client,
323 # it may embed the `Status` in the normal response to indicate the partial
324 # errors.
325 #
326 # - Workflow errors. A typical workflow has multiple steps. Each step may
327 # have a `Status` message for error reporting purpose.
328 #
329 # - Batch operations. If a client uses batch request and batch response, the
330 # `Status` message should be used directly inside batch response, one for
331 # each error sub-response.
332 #
333 # - Asynchronous operations. If an API call embeds asynchronous operation
334 # results in its response, the status of those operations should be
335 # represented directly using the `Status` message.
336 #
337 # - Logging. If some API errors are stored in logs, the message `Status` could
338 # be used directly after any stripping needed for security/privacy reasons.
339 "message": "A String", # A developer-facing error message, which should be in English. Any
340 # user-facing error message should be localized and sent in the
341 # google.rpc.Status.details field, or localized by the client.
342 "code": 42, # The status code, which should be an enum value of google.rpc.Code.
343 "details": [ # A list of messages that carry the error details. There will be a
344 # common set of message types for APIs to use.
345 {
346 "a_key": "", # Properties of the object. Contains field @type with type URL.
347 },
348 ],
349 },
350 }</pre>
351</div>
352
353<div class="method">
354 <code class="details" id="disable">disable(serviceName=None, body, x__xgafv=None)</code>
355 <pre>Disable a managed service for a project.
356
357Operation<response: DisableServiceResponse>
358
359Args:
360 serviceName: string, Name of the service to disable. Specifying an unknown service name
361will cause the request to fail. (required)
362 body: object, The request body. (required)
363 The object takes the form of:
364
365{ # Request message for DisableService method.
366 "consumerId": "A String", # The identity of consumer resource which service disablement will be
367 # applied to.
368 #
369 # The Google Service Management implementation accepts the following
370 # forms: "project:<project_id>", "project_number:<project_number>".
371 #
372 # Note: this is made compatible with
373 # google.api.servicecontrol.v1.Operation.consumer_id.
374 }
375
376 x__xgafv: string, V1 error format.
377 Allowed values
378 1 - v1 error format
379 2 - v2 error format
380
381Returns:
382 An object of the form:
383
384 { # This resource represents a long-running operation that is the result of a
385 # network API call.
386 "metadata": { # Service-specific metadata associated with the operation. It typically
387 # contains progress information and common metadata such as create time.
388 # Some services might not provide such metadata. Any method that returns a
389 # long-running operation should document the metadata type, if any.
390 "a_key": "", # Properties of the object. Contains field @type with type URL.
391 },
392 "done": True or False, # If the value is `false`, it means the operation is still in progress.
393 # If true, the operation is completed, and either `error` or `response` is
394 # available.
395 "response": { # The normal response of the operation in case of success. If the original
396 # method returns no data on success, such as `Delete`, the response is
397 # `google.protobuf.Empty`. If the original method is standard
398 # `Get`/`Create`/`Update`, the response should be the resource. For other
399 # methods, the response should have the type `XxxResponse`, where `Xxx`
400 # is the original method name. For example, if the original method name
401 # is `TakeSnapshot()`, the inferred response type is
402 # `TakeSnapshotResponse`.
403 "a_key": "", # Properties of the object. Contains field @type with type URL.
404 },
405 "name": "A String", # The server-assigned name, which is only unique within the same service that
406 # originally returns it. If you use the default HTTP mapping, the
407 # `name` should have the format of `operations/some/unique/name`.
Sai Cheemalapatidf613972016-10-21 13:59:49 -0700408 "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
Jon Wayne Parrott7d5badb2016-08-16 12:44:29 -0700409 # programming environments, including REST APIs and RPC APIs. It is used by
410 # [gRPC](https://github.com/grpc). The error model is designed to be:
411 #
412 # - Simple to use and understand for most users
413 # - Flexible enough to meet unexpected needs
414 #
415 # # Overview
416 #
417 # The `Status` message contains three pieces of data: error code, error message,
418 # and error details. The error code should be an enum value of
419 # google.rpc.Code, but it may accept additional error codes if needed. The
420 # error message should be a developer-facing English message that helps
421 # developers *understand* and *resolve* the error. If a localized user-facing
422 # error message is needed, put the localized message in the error details or
423 # localize it in the client. The optional error details may contain arbitrary
424 # information about the error. There is a predefined set of error detail types
425 # in the package `google.rpc` which can be used for common error conditions.
426 #
427 # # Language mapping
428 #
429 # The `Status` message is the logical representation of the error model, but it
430 # is not necessarily the actual wire format. When the `Status` message is
431 # exposed in different client libraries and different wire protocols, it can be
432 # mapped differently. For example, it will likely be mapped to some exceptions
433 # in Java, but more likely mapped to some error codes in C.
434 #
435 # # Other uses
436 #
437 # The error model and the `Status` message can be used in a variety of
438 # environments, either with or without APIs, to provide a
439 # consistent developer experience across different environments.
440 #
441 # Example uses of this error model include:
442 #
443 # - Partial errors. If a service needs to return partial errors to the client,
444 # it may embed the `Status` in the normal response to indicate the partial
445 # errors.
446 #
447 # - Workflow errors. A typical workflow has multiple steps. Each step may
448 # have a `Status` message for error reporting purpose.
449 #
450 # - Batch operations. If a client uses batch request and batch response, the
451 # `Status` message should be used directly inside batch response, one for
452 # each error sub-response.
453 #
454 # - Asynchronous operations. If an API call embeds asynchronous operation
455 # results in its response, the status of those operations should be
456 # represented directly using the `Status` message.
457 #
458 # - Logging. If some API errors are stored in logs, the message `Status` could
459 # be used directly after any stripping needed for security/privacy reasons.
460 "message": "A String", # A developer-facing error message, which should be in English. Any
461 # user-facing error message should be localized and sent in the
462 # google.rpc.Status.details field, or localized by the client.
463 "code": 42, # The status code, which should be an enum value of google.rpc.Code.
464 "details": [ # A list of messages that carry the error details. There will be a
465 # common set of message types for APIs to use.
466 {
467 "a_key": "", # Properties of the object. Contains field @type with type URL.
468 },
469 ],
470 },
471 }</pre>
472</div>
473
474<div class="method">
475 <code class="details" id="enable">enable(serviceName=None, body, x__xgafv=None)</code>
476 <pre>Enable a managed service for a project with default setting.
477
478Operation<response: EnableServiceResponse>
479
Jon Wayne Parrott2512a0c2016-08-29 10:21:22 -0700480google.rpc.Status errors may contain a
481google.rpc.PreconditionFailure error detail.
482
Jon Wayne Parrott7d5badb2016-08-16 12:44:29 -0700483Args:
484 serviceName: string, Name of the service to enable. Specifying an unknown service name will
485cause the request to fail. (required)
486 body: object, The request body. (required)
487 The object takes the form of:
488
489{ # Request message for EnableService method.
490 "consumerId": "A String", # The identity of consumer resource which service enablement will be
491 # applied to.
492 #
493 # The Google Service Management implementation accepts the following
494 # forms: "project:<project_id>", "project_number:<project_number>".
495 #
496 # Note: this is made compatible with
497 # google.api.servicecontrol.v1.Operation.consumer_id.
498 }
499
500 x__xgafv: string, V1 error format.
501 Allowed values
502 1 - v1 error format
503 2 - v2 error format
504
505Returns:
506 An object of the form:
507
508 { # This resource represents a long-running operation that is the result of a
509 # network API call.
510 "metadata": { # Service-specific metadata associated with the operation. It typically
511 # contains progress information and common metadata such as create time.
512 # Some services might not provide such metadata. Any method that returns a
513 # long-running operation should document the metadata type, if any.
514 "a_key": "", # Properties of the object. Contains field @type with type URL.
515 },
516 "done": True or False, # If the value is `false`, it means the operation is still in progress.
517 # If true, the operation is completed, and either `error` or `response` is
518 # available.
519 "response": { # The normal response of the operation in case of success. If the original
520 # method returns no data on success, such as `Delete`, the response is
521 # `google.protobuf.Empty`. If the original method is standard
522 # `Get`/`Create`/`Update`, the response should be the resource. For other
523 # methods, the response should have the type `XxxResponse`, where `Xxx`
524 # is the original method name. For example, if the original method name
525 # is `TakeSnapshot()`, the inferred response type is
526 # `TakeSnapshotResponse`.
527 "a_key": "", # Properties of the object. Contains field @type with type URL.
528 },
529 "name": "A String", # The server-assigned name, which is only unique within the same service that
530 # originally returns it. If you use the default HTTP mapping, the
531 # `name` should have the format of `operations/some/unique/name`.
Sai Cheemalapatidf613972016-10-21 13:59:49 -0700532 "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
Jon Wayne Parrott7d5badb2016-08-16 12:44:29 -0700533 # programming environments, including REST APIs and RPC APIs. It is used by
534 # [gRPC](https://github.com/grpc). The error model is designed to be:
535 #
536 # - Simple to use and understand for most users
537 # - Flexible enough to meet unexpected needs
538 #
539 # # Overview
540 #
541 # The `Status` message contains three pieces of data: error code, error message,
542 # and error details. The error code should be an enum value of
543 # google.rpc.Code, but it may accept additional error codes if needed. The
544 # error message should be a developer-facing English message that helps
545 # developers *understand* and *resolve* the error. If a localized user-facing
546 # error message is needed, put the localized message in the error details or
547 # localize it in the client. The optional error details may contain arbitrary
548 # information about the error. There is a predefined set of error detail types
549 # in the package `google.rpc` which can be used for common error conditions.
550 #
551 # # Language mapping
552 #
553 # The `Status` message is the logical representation of the error model, but it
554 # is not necessarily the actual wire format. When the `Status` message is
555 # exposed in different client libraries and different wire protocols, it can be
556 # mapped differently. For example, it will likely be mapped to some exceptions
557 # in Java, but more likely mapped to some error codes in C.
558 #
559 # # Other uses
560 #
561 # The error model and the `Status` message can be used in a variety of
562 # environments, either with or without APIs, to provide a
563 # consistent developer experience across different environments.
564 #
565 # Example uses of this error model include:
566 #
567 # - Partial errors. If a service needs to return partial errors to the client,
568 # it may embed the `Status` in the normal response to indicate the partial
569 # errors.
570 #
571 # - Workflow errors. A typical workflow has multiple steps. Each step may
572 # have a `Status` message for error reporting purpose.
573 #
574 # - Batch operations. If a client uses batch request and batch response, the
575 # `Status` message should be used directly inside batch response, one for
576 # each error sub-response.
577 #
578 # - Asynchronous operations. If an API call embeds asynchronous operation
579 # results in its response, the status of those operations should be
580 # represented directly using the `Status` message.
581 #
582 # - Logging. If some API errors are stored in logs, the message `Status` could
583 # be used directly after any stripping needed for security/privacy reasons.
584 "message": "A String", # A developer-facing error message, which should be in English. Any
585 # user-facing error message should be localized and sent in the
586 # google.rpc.Status.details field, or localized by the client.
587 "code": 42, # The status code, which should be an enum value of google.rpc.Code.
588 "details": [ # A list of messages that carry the error details. There will be a
589 # common set of message types for APIs to use.
590 {
591 "a_key": "", # Properties of the object. Contains field @type with type URL.
592 },
593 ],
594 },
595 }</pre>
596</div>
597
598<div class="method">
599 <code class="details" id="generateConfigReport">generateConfigReport(body, x__xgafv=None)</code>
600 <pre>Generates and returns a report (errors, warnings and changes from
601existing configurations) associated with
602GenerateConfigReportRequest.new_value
603
604If GenerateConfigReportRequest.old_value is specified,
605GenerateConfigReportRequest will contain a single ChangeReport based on the
606comparison between GenerateConfigReportRequest.new_value and
607GenerateConfigReportRequest.old_value.
608If GenerateConfigReportRequest.old_value is not specified, this method
609will compare GenerateConfigReportRequest.new_value with the last pushed
610service configuration.
611
612Args:
613 body: object, The request body. (required)
614 The object takes the form of:
615
616{ # Request message for GenerateConfigReport method.
617 "newConfig": { # Service configuration for which we want to generate the report.
618 # For this version of API, the supported types are
619 # google.api.servicemanagement.v1.ConfigRef,
620 # google.api.servicemanagement.v1.ConfigSource,
621 # and google.api.Service
622 "a_key": "", # Properties of the object. Contains field @type with type URL.
623 },
624 "oldConfig": { # Service configuration against which the comparison will be done.
625 # For this version of API, the supported types are
626 # google.api.servicemanagement.v1.ConfigRef,
627 # google.api.servicemanagement.v1.ConfigSource,
628 # and google.api.Service
629 "a_key": "", # Properties of the object. Contains field @type with type URL.
630 },
631 }
632
633 x__xgafv: string, V1 error format.
634 Allowed values
635 1 - v1 error format
636 2 - v2 error format
637
638Returns:
639 An object of the form:
640
641 { # Response message for GenerateConfigReport method.
642 "serviceName": "A String", # Name of the service this report belongs to.
643 "changeReports": [ # list of ChangeReport, each corresponding to comparison between two
644 # service configurations.
645 { # Change report associated with a particular service configuration.
646 #
647 # It contains a list of ConfigChanges based on the comparison between
648 # two service configurations.
649 "configChanges": [ # List of changes between two service configurations.
650 # The changes will be alphabetically sorted based on the identifier
651 # of each change.
652 # A ConfigChange identifier is a dot separated path to the configuration.
653 # Example: visibility.rules[selector='LibraryService.CreateBook'].restriction
654 { # Output generated from semantically comparing two versions of a service
655 # configuration.
656 #
657 # Includes detailed information about a field that have changed with
658 # applicable advice about potential consequences for the change, such as
659 # backwards-incompatibility.
660 "advices": [ # Collection of advice provided for this change, useful for determining the
661 # possible impact of this change.
662 { # Generated advice about this change, used for providing more
663 # information about how a change will affect the existing service.
664 "description": "A String", # Useful description for why this advice was applied and what actions should
665 # be taken to mitigate any implied risks.
666 },
667 ],
668 "changeType": "A String", # The type for this change, either ADDED, REMOVED, or MODIFIED.
669 "newValue": "A String", # Value of the changed object in the new Service configuration,
670 # in JSON format. This field will not be populated if ChangeType == REMOVED.
671 "oldValue": "A String", # Value of the changed object in the old Service configuration,
672 # in JSON format. This field will not be populated if ChangeType == ADDED.
673 "element": "A String", # Object hierarchy path to the change, with levels separated by a '.'
674 # character. For repeated fields, an applicable unique identifier field is
675 # used for the index (usually selector, name, or id). For maps, the term
676 # 'key' is used. If the field has no unique identifier, the numeric index
677 # is used.
678 # Examples:
679 # - visibility.rules[selector=="google.LibraryService.CreateBook"].restriction
680 # - quota.metric_rules[selector=="google"].metric_costs[key=="reads"].value
681 # - logging.producer_destinations[0]
682 },
683 ],
684 },
685 ],
686 "id": "A String", # ID of the service configuration this report belongs to.
687 "diagnostics": [ # Errors / Linter warnings associated with the service definition this
688 # report
689 # belongs to.
690 { # Represents a diagnostic message (error or warning)
691 "kind": "A String", # The kind of diagnostic information provided.
692 "message": "A String", # Message describing the error or warning.
693 "location": "A String", # File name and line number of the error or warning.
694 },
695 ],
696 }</pre>
697</div>
698
699<div class="method">
700 <code class="details" id="get">get(serviceName=None, x__xgafv=None)</code>
701 <pre>Gets a managed service.
702
703Args:
704 serviceName: string, The name of the service. See the `ServiceManager` overview for naming
705requirements. For example: `example.googleapis.com`. (required)
706 x__xgafv: string, V1 error format.
707 Allowed values
708 1 - v1 error format
709 2 - v2 error format
710
711Returns:
712 An object of the form:
713
714 { # The full representation of a Service that is managed by
715 # Google Service Management.
716 "serviceName": "A String", # The name of the service. See the [overview](/service-management/overview)
717 # for naming requirements.
718 "producerProjectId": "A String", # ID of the project that produces and owns this service.
719 }</pre>
720</div>
721
722<div class="method">
723 <code class="details" id="getConfig">getConfig(serviceName=None, configId=None, x__xgafv=None)</code>
724 <pre>Gets a service configuration (version) for a managed service.
725
726Args:
727 serviceName: string, The name of the service. See the [overview](/service-management/overview)
728for naming requirements. For example: `example.googleapis.com`. (required)
729 configId: string, A parameter
730 x__xgafv: string, V1 error format.
731 Allowed values
732 1 - v1 error format
733 2 - v2 error format
734
735Returns:
736 An object of the form:
737
Sai Cheemalapatiea3a5e12016-10-12 14:05:53 -0700738 { # `Service` is the root object of Google service configuration schema. It
739 # describes basic information about a service, such as the name and the
740 # title, and delegates other aspects to sub-sections. Each sub-section is
741 # either a proto message or a repeated proto message that configures a
742 # specific aspect, such as auth. See each proto message definition for details.
Jon Wayne Parrott7d5badb2016-08-16 12:44:29 -0700743 #
744 # Example:
745 #
746 # type: google.api.Service
Sai Cheemalapatiea3a5e12016-10-12 14:05:53 -0700747 # config_version: 3
Jon Wayne Parrott7d5badb2016-08-16 12:44:29 -0700748 # name: calendar.googleapis.com
749 # title: Google Calendar API
750 # apis:
Sai Cheemalapatiea3a5e12016-10-12 14:05:53 -0700751 # - name: google.calendar.v3.Calendar
Jon Wayne Parrott7d5badb2016-08-16 12:44:29 -0700752 # backend:
753 # rules:
Sai Cheemalapatiea3a5e12016-10-12 14:05:53 -0700754 # - selector: "google.calendar.v3.*"
Jon Wayne Parrott7d5badb2016-08-16 12:44:29 -0700755 # address: calendar.example.com
756 "control": { # Selects and configures the service controller used by the service. The # Configuration for the service control plane.
757 # service controller handles features like abuse, quota, billing, logging,
758 # monitoring, etc.
759 "environment": "A String", # The service control environment to use. If empty, no control plane
760 # feature (like quota and billing) will be enabled.
761 },
762 "monitoredResources": [ # Defines the monitored resources used by this service. This is required
763 # by the Service.monitoring and Service.logging configurations.
764 { # An object that describes the schema of a MonitoredResource object using a
765 # type name and a set of labels. For example, the monitored resource
766 # descriptor for Google Compute Engine VM instances has a type of
767 # `"gce_instance"` and specifies the use of the labels `"instance_id"` and
768 # `"zone"` to identify particular VM instances.
769 #
770 # Different APIs can support different monitored resource types. APIs generally
771 # provide a `list` method that returns the monitored resource descriptors used
772 # by the API.
773 "type": "A String", # Required. The monitored resource type. For example, the type
774 # `"cloudsql_database"` represents databases in Google Cloud SQL.
775 # The maximum length of this value is 256 characters.
776 "labels": [ # Required. A set of labels used to describe instances of this monitored
777 # resource type. For example, an individual Google Cloud SQL database is
778 # identified by values for the labels `"database_id"` and `"zone"`.
779 { # A description of a label.
780 "valueType": "A String", # The type of data that can be assigned to the label.
781 "description": "A String", # A human-readable description for the label.
782 "key": "A String", # The label key.
783 },
784 ],
785 "displayName": "A String", # Optional. A concise name for the monitored resource type that might be
Jon Wayne Parrott2512a0c2016-08-29 10:21:22 -0700786 # displayed in user interfaces. It should be a Title Cased Noun Phrase,
787 # without any article or other determiners. For example,
788 # `"Google Cloud SQL Database"`.
Jon Wayne Parrott7d5badb2016-08-16 12:44:29 -0700789 "description": "A String", # Optional. A detailed description of the monitored resource type that might
790 # be used in documentation.
791 "name": "A String", # Optional. The resource name of the monitored resource descriptor:
792 # `"projects/{project_id}/monitoredResourceDescriptors/{type}"` where
793 # {type} is the value of the `type` field in this object and
794 # {project_id} is a project ID that provides API-specific context for
795 # accessing the type. APIs that do not use project information can use the
796 # resource name format `"monitoredResourceDescriptors/{type}"`.
797 },
798 ],
799 "logs": [ # Defines the logs used by this service.
800 { # A description of a log type. Example in YAML format:
801 #
802 # - name: library.googleapis.com/activity_history
803 # description: The history of borrowing and returning library items.
804 # display_name: Activity
805 # labels:
806 # - key: /customer_id
807 # description: Identifier of a library customer
808 "labels": [ # The set of labels that are available to describe a specific log entry.
809 # Runtime requests that contain labels not specified here are
810 # considered invalid.
811 { # A description of a label.
812 "valueType": "A String", # The type of data that can be assigned to the label.
813 "description": "A String", # A human-readable description for the label.
814 "key": "A String", # The label key.
815 },
816 ],
817 "displayName": "A String", # The human-readable name for this log. This information appears on
818 # the user interface and should be concise.
819 "description": "A String", # A human-readable description of this log. This information appears in
820 # the documentation and can contain details.
821 "name": "A String", # The name of the log. It must be less than 512 characters long and can
822 # include the following characters: upper- and lower-case alphanumeric
823 # characters [A-Za-z0-9], and punctuation characters including
824 # slash, underscore, hyphen, period [/_-.].
825 },
826 ],
Sai Cheemalapatidf613972016-10-21 13:59:49 -0700827 "analytics": { # Analytics configuration of the service. # WARNING: DO NOT USE UNTIL THIS MESSAGE IS REMOVED.
828 #
829 # Analytics configuration.
830 #
831 # The example below shows how to configure monitored resources and metrics
832 # for analytics. In the example, a monitored resource and two metrics are
833 # defined. The `library.googleapis.com/book/returned_count` and
834 # `library.googleapis.com/book/overdue_count` metric are sent
835 # to the analytics.
836 #
837 # monitored_resources:
838 # - type: library.googleapis.com/branch
839 # labels:
840 # - key: /city
841 # description: The city where the library branch is located in.
842 # - key: /name
843 # description: The name of the branch.
844 # metrics:
845 # - name: library.googleapis.com/book/returned_count
846 # metric_kind: DELTA
847 # value_type: INT64
848 # labels:
849 # - key: /customer_id
850 # - name: library.googleapis.com/book/overdue_count
851 # metric_kind: GAUGE
852 # value_type: INT64
853 # labels:
854 # - key: /customer_id
855 # analytics:
856 # producer_destinations:
857 # - monitored_resource: library.googleapis.com/branch
858 # metrics:
859 # - library.googleapis.com/book/returned_count
860 # - library.googleapis.com/book/overdue_count
861 "producerDestinations": [ # Analytics configurations for sending metrics to the analytics backend.
862 # There can be multiple producer destinations, each one must have a
863 # different monitored resource type. A metric can be used in at most
864 # one producer destination.
865 { # Configuration of a specific analytics destination.
866 "monitoredResource": "A String", # The monitored resource type. The type must be defined in
867 # Service.monitored_resources section.
868 "metrics": [ # Names of the metrics to report to this analytics destination.
869 # Each name must be defined in Service.metrics section. Metrics
870 # with value type BOOL and STRING must be of GUAGE kind, metrics with
871 # value type INT64, DOUBLE and MONEY must be of DELTA kind.
872 "A String",
873 ],
874 },
875 ],
876 },
Sai Cheemalapatiea3a5e12016-10-12 14:05:53 -0700877 "systemParameters": { # ### System parameter configuration # System parameter configuration.
Jon Wayne Parrott7d5badb2016-08-16 12:44:29 -0700878 #
879 # A system parameter is a special kind of parameter defined by the API
880 # system, not by an individual API. It is typically mapped to an HTTP header
881 # and/or a URL query parameter. This configuration specifies which methods
882 # change the names of the system parameters.
883 "rules": [ # Define system parameters.
884 #
885 # The parameters defined here will override the default parameters
886 # implemented by the system. If this field is missing from the service
887 # config, default system parameters will be used. Default system parameters
888 # and names is implementation-dependent.
889 #
890 # Example: define api key and alt name for all methods
891 #
892 # system_parameters
893 # rules:
894 # - selector: "*"
895 # parameters:
896 # - name: api_key
897 # url_query_parameter: api_key
898 # - name: alt
899 # http_header: Response-Content-Type
900 #
901 # Example: define 2 api key names for a specific method.
902 #
903 # system_parameters
904 # rules:
905 # - selector: "/ListShelves"
906 # parameters:
907 # - name: api_key
908 # http_header: Api-Key1
909 # - name: api_key
910 # http_header: Api-Key2
911 #
912 # **NOTE:** All service configuration rules follow "last one wins" order.
913 { # Define a system parameter rule mapping system parameter definitions to
914 # methods.
915 "parameters": [ # Define parameters. Multiple names may be defined for a parameter.
916 # For a given method call, only one of them should be used. If multiple
917 # names are used the behavior is implementation-dependent.
918 # If none of the specified names are present the behavior is
919 # parameter-dependent.
920 { # Define a parameter's name and location. The parameter may be passed as either
921 # an HTTP header or a URL query parameter, and if both are passed the behavior
922 # is implementation-dependent.
923 "urlQueryParameter": "A String", # Define the URL query parameter name to use for the parameter. It is case
924 # sensitive.
925 "name": "A String", # Define the name of the parameter, such as "api_key", "alt", "callback",
926 # and etc. It is case sensitive.
927 "httpHeader": "A String", # Define the HTTP header name to use for the parameter. It is case
928 # insensitive.
929 },
930 ],
931 "selector": "A String", # Selects the methods to which this rule applies. Use '*' to indicate all
932 # methods in all APIs.
933 #
934 # Refer to selector for syntax details.
935 },
936 ],
937 },
938 "backend": { # `Backend` defines the backend configuration for a service. # API backend configuration.
939 "rules": [ # A list of API backend rules that apply to individual API methods.
940 #
941 # **NOTE:** All service configuration rules follow "last one wins" order.
942 { # A backend rule provides configuration for an individual API element.
943 "selector": "A String", # Selects the methods to which this rule applies.
944 #
945 # Refer to selector for syntax details.
946 "deadline": 3.14, # The number of seconds to wait for a response from a request. The
947 # default depends on the deployment context.
948 "address": "A String", # The address of the API backend.
949 },
950 ],
951 },
Sai Cheemalapatiea3a5e12016-10-12 14:05:53 -0700952 "monitoring": { # Monitoring configuration of the service. # Monitoring configuration.
Jon Wayne Parrott7d5badb2016-08-16 12:44:29 -0700953 #
954 # The example below shows how to configure monitored resources and metrics
955 # for monitoring. In the example, a monitored resource and two metrics are
956 # defined. The `library.googleapis.com/book/returned_count` metric is sent
957 # to both producer and consumer projects, whereas the
958 # `library.googleapis.com/book/overdue_count` metric is only sent to the
959 # consumer project.
960 #
961 # monitored_resources:
962 # - type: library.googleapis.com/branch
963 # labels:
964 # - key: /city
965 # description: The city where the library branch is located in.
966 # - key: /name
967 # description: The name of the branch.
968 # metrics:
969 # - name: library.googleapis.com/book/returned_count
970 # metric_kind: DELTA
971 # value_type: INT64
972 # labels:
973 # - key: /customer_id
974 # - name: library.googleapis.com/book/overdue_count
975 # metric_kind: GAUGE
976 # value_type: INT64
977 # labels:
978 # - key: /customer_id
979 # monitoring:
980 # producer_destinations:
981 # - monitored_resource: library.googleapis.com/branch
982 # metrics:
983 # - library.googleapis.com/book/returned_count
984 # consumer_destinations:
985 # - monitored_resource: library.googleapis.com/branch
986 # metrics:
987 # - library.googleapis.com/book/returned_count
988 # - library.googleapis.com/book/overdue_count
989 "producerDestinations": [ # Monitoring configurations for sending metrics to the producer project.
990 # There can be multiple producer destinations, each one must have a
991 # different monitored resource type. A metric can be used in at most
992 # one producer destination.
993 { # Configuration of a specific monitoring destination (the producer project
994 # or the consumer project).
995 "monitoredResource": "A String", # The monitored resource type. The type must be defined in
996 # Service.monitored_resources section.
997 "metrics": [ # Names of the metrics to report to this monitoring destination.
998 # Each name must be defined in Service.metrics section.
999 "A String",
1000 ],
1001 },
1002 ],
1003 "consumerDestinations": [ # Monitoring configurations for sending metrics to the consumer project.
1004 # There can be multiple consumer destinations, each one must have a
1005 # different monitored resource type. A metric can be used in at most
1006 # one consumer destination.
1007 { # Configuration of a specific monitoring destination (the producer project
1008 # or the consumer project).
1009 "monitoredResource": "A String", # The monitored resource type. The type must be defined in
1010 # Service.monitored_resources section.
1011 "metrics": [ # Names of the metrics to report to this monitoring destination.
1012 # Each name must be defined in Service.metrics section.
1013 "A String",
1014 ],
1015 },
1016 ],
1017 },
1018 "title": "A String", # The product title associated with this service.
1019 "id": "A String", # A unique ID for a specific instance of this message, typically assigned
1020 # by the client for tracking purpose. If empty, the server may choose to
1021 # generate one instead.
1022 "authentication": { # `Authentication` defines the authentication configuration for an API. # Auth configuration.
1023 #
1024 # Example for an API targeted for external use:
1025 #
1026 # name: calendar.googleapis.com
1027 # authentication:
1028 # rules:
1029 # - selector: "*"
1030 # oauth:
1031 # canonical_scopes: https://www.googleapis.com/auth/calendar
1032 #
1033 # - selector: google.calendar.Delegate
1034 # oauth:
1035 # canonical_scopes: https://www.googleapis.com/auth/calendar.read
1036 "rules": [ # A list of authentication rules that apply to individual API methods.
1037 #
1038 # **NOTE:** All service configuration rules follow "last one wins" order.
1039 { # Authentication rules for the service.
1040 #
1041 # By default, if a method has any authentication requirements, every request
1042 # must include a valid credential matching one of the requirements.
1043 # It's an error to include more than one kind of credential in a single
1044 # request.
1045 #
1046 # If a method doesn't have any auth requirements, request credentials will be
1047 # ignored.
1048 "oauth": { # OAuth scopes are a way to define data and permissions on data. For example, # The requirements for OAuth credentials.
1049 # there are scopes defined for "Read-only access to Google Calendar" and
1050 # "Access to Cloud Platform". Users can consent to a scope for an application,
1051 # giving it permission to access that data on their behalf.
1052 #
1053 # OAuth scope specifications should be fairly coarse grained; a user will need
1054 # to see and understand the text description of what your scope means.
1055 #
1056 # In most cases: use one or at most two OAuth scopes for an entire family of
1057 # products. If your product has multiple APIs, you should probably be sharing
1058 # the OAuth scope across all of those APIs.
1059 #
1060 # When you need finer grained OAuth consent screens: talk with your product
1061 # management about how developers will use them in practice.
1062 #
1063 # Please note that even though each of the canonical scopes is enough for a
1064 # request to be accepted and passed to the backend, a request can still fail
1065 # due to the backend requiring additional scopes or permissions.
1066 "canonicalScopes": "A String", # The list of publicly documented OAuth scopes that are allowed access. An
1067 # OAuth token containing any of these scopes will be accepted.
1068 #
1069 # Example:
1070 #
1071 # canonical_scopes: https://www.googleapis.com/auth/calendar,
1072 # https://www.googleapis.com/auth/calendar.read
1073 },
1074 "requirements": [ # Requirements for additional authentication providers.
1075 { # User-defined authentication requirements, including support for
1076 # [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
1077 "providerId": "A String", # id from authentication provider.
1078 #
1079 # Example:
1080 #
1081 # provider_id: bookstore_auth
1082 "audiences": "A String", # The list of JWT
1083 # [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).
1084 # that are allowed to access. A JWT containing any of these audiences will
1085 # be accepted. When this setting is absent, only JWTs with audience
1086 # "https://Service_name/API_name"
1087 # will be accepted. For example, if no audiences are in the setting,
1088 # LibraryService API will only accept JWTs with the following audience
1089 # "https://library-example.googleapis.com/google.example.library.v1.LibraryService".
1090 #
1091 # Example:
1092 #
1093 # audiences: bookstore_android.apps.googleusercontent.com,
1094 # bookstore_web.apps.googleusercontent.com
1095 },
1096 ],
Jon Wayne Parrott2512a0c2016-08-29 10:21:22 -07001097 "allowWithoutCredential": True or False, # Whether to allow requests without a credential. The credential can be
1098 # an OAuth token, Google cookies (first-party auth) or EndUserCreds.
1099 #
1100 # For requests without credentials, if the service control environment is
1101 # specified, each incoming request **must** be associated with a service
1102 # consumer. This can be done by passing an API key that belongs to a consumer
1103 # project.
Jon Wayne Parrott7d5badb2016-08-16 12:44:29 -07001104 "selector": "A String", # Selects the methods to which this rule applies.
1105 #
1106 # Refer to selector for syntax details.
1107 },
1108 ],
1109 "providers": [ # Defines a set of authentication providers that a service supports.
1110 { # Configuration for an anthentication provider, including support for
1111 # [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
1112 "jwksUri": "A String", # URL of the provider's public key set to validate signature of the JWT. See
1113 # [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata).
1114 # Optional if the key set document:
1115 # - can be retrieved from
1116 # [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html
1117 # of the issuer.
1118 # - can be inferred from the email domain of the issuer (e.g. a Google service account).
1119 #
1120 # Example: https://www.googleapis.com/oauth2/v1/certs
1121 "id": "A String", # The unique identifier of the auth provider. It will be referred to by
1122 # `AuthRequirement.provider_id`.
1123 #
1124 # Example: "bookstore_auth".
1125 "issuer": "A String", # Identifies the principal that issued the JWT. See
1126 # https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.1
1127 # Usually a URL or an email address.
1128 #
1129 # Example: https://securetoken.google.com
1130 # Example: 1234567-compute@developer.gserviceaccount.com
1131 },
1132 ],
1133 },
1134 "usage": { # Configuration controlling usage of a service. # Configuration controlling usage of this service.
1135 "rules": [ # A list of usage rules that apply to individual API methods.
1136 #
1137 # **NOTE:** All service configuration rules follow "last one wins" order.
1138 { # Usage configuration rules for the service.
1139 #
1140 # NOTE: Under development.
1141 #
1142 #
1143 # Use this rule to configure unregistered calls for the service. Unregistered
1144 # calls are calls that do not contain consumer project identity.
1145 # (Example: calls that do not contain an API key).
1146 # By default, API methods do not allow unregistered calls, and each method call
1147 # must be identified by a consumer project identity. Use this rule to
1148 # allow/disallow unregistered calls.
1149 #
1150 # Example of an API that wants to allow unregistered calls for entire service.
1151 #
1152 # usage:
1153 # rules:
1154 # - selector: "*"
1155 # allow_unregistered_calls: true
1156 #
1157 # Example of a method that wants to allow unregistered calls.
1158 #
1159 # usage:
1160 # rules:
1161 # - selector: "google.example.library.v1.LibraryService.CreateBook"
1162 # allow_unregistered_calls: true
1163 "selector": "A String", # Selects the methods to which this rule applies. Use '*' to indicate all
1164 # methods in all APIs.
1165 #
1166 # Refer to selector for syntax details.
1167 "allowUnregisteredCalls": True or False, # True, if the method allows unregistered calls; false otherwise.
1168 },
1169 ],
1170 "requirements": [ # Requirements that must be satisfied before a consumer project can use the
1171 # service. Each requirement is of the form <service.name>/<requirement-id>;
1172 # for example 'serviceusage.googleapis.com/billing-enabled'.
1173 "A String",
1174 ],
1175 },
1176 "configVersion": 42, # The version of the service configuration. The config version may
1177 # influence interpretation of the configuration, for example, to
1178 # determine defaults. This is documented together with applicable
1179 # options. The current default for the config version itself is `3`.
1180 "producerProjectId": "A String", # The id of the Google developer project that owns the service.
1181 # Members of this project can manage the service configuration,
1182 # manage consumption of the service, etc.
1183 "http": { # Defines the HTTP configuration for a service. It contains a list of # HTTP configuration.
1184 # HttpRule, each specifying the mapping of an RPC method
1185 # to one or more HTTP REST API methods.
1186 "rules": [ # A list of HTTP configuration rules that apply to individual API methods.
1187 #
1188 # **NOTE:** All service configuration rules follow "last one wins" order.
1189 { # `HttpRule` defines the mapping of an RPC method to one or more HTTP
1190 # REST APIs. The mapping determines what portions of the request
1191 # message are populated from the path, query parameters, or body of
1192 # the HTTP request. The mapping is typically specified as an
1193 # `google.api.http` annotation, see "google/api/annotations.proto"
1194 # for details.
1195 #
1196 # The mapping consists of a field specifying the path template and
1197 # method kind. The path template can refer to fields in the request
1198 # message, as in the example below which describes a REST GET
1199 # operation on a resource collection of messages:
1200 #
1201 # ```proto
1202 # service Messaging {
1203 # rpc GetMessage(GetMessageRequest) returns (Message) {
1204 # option (google.api.http).get = "/v1/messages/{message_id}/{sub.subfield}";
1205 # }
1206 # }
1207 # message GetMessageRequest {
1208 # message SubMessage {
1209 # string subfield = 1;
1210 # }
1211 # string message_id = 1; // mapped to the URL
1212 # SubMessage sub = 2; // `sub.subfield` is url-mapped
1213 # }
1214 # message Message {
1215 # string text = 1; // content of the resource
1216 # }
1217 # ```
1218 #
1219 # This definition enables an automatic, bidrectional mapping of HTTP
1220 # JSON to RPC. Example:
1221 #
1222 # HTTP | RPC
1223 # -----|-----
1224 # `GET /v1/messages/123456/foo` | `GetMessage(message_id: "123456" sub: SubMessage(subfield: "foo"))`
1225 #
1226 # In general, not only fields but also field paths can be referenced
1227 # from a path pattern. Fields mapped to the path pattern cannot be
1228 # repeated and must have a primitive (non-message) type.
1229 #
1230 # Any fields in the request message which are not bound by the path
1231 # pattern automatically become (optional) HTTP query
1232 # parameters. Assume the following definition of the request message:
1233 #
1234 # ```proto
1235 # message GetMessageRequest {
1236 # message SubMessage {
1237 # string subfield = 1;
1238 # }
1239 # string message_id = 1; // mapped to the URL
1240 # int64 revision = 2; // becomes a parameter
1241 # SubMessage sub = 3; // `sub.subfield` becomes a parameter
1242 # }
1243 # ```
1244 #
1245 # This enables a HTTP JSON to RPC mapping as below:
1246 #
1247 # HTTP | RPC
1248 # -----|-----
1249 # `GET /v1/messages/123456?revision=2&sub.subfield=foo` | `GetMessage(message_id: "123456" revision: 2 sub: SubMessage(subfield: "foo"))`
1250 #
1251 # Note that fields which are mapped to HTTP parameters must have a
1252 # primitive type or a repeated primitive type. Message types are not
1253 # allowed. In the case of a repeated type, the parameter can be
1254 # repeated in the URL, as in `...?param=A&param=B`.
1255 #
1256 # For HTTP method kinds which allow a request body, the `body` field
1257 # specifies the mapping. Consider a REST update method on the
1258 # message resource collection:
1259 #
1260 # ```proto
1261 # service Messaging {
1262 # rpc UpdateMessage(UpdateMessageRequest) returns (Message) {
1263 # option (google.api.http) = {
1264 # put: "/v1/messages/{message_id}"
1265 # body: "message"
1266 # };
1267 # }
1268 # }
1269 # message UpdateMessageRequest {
1270 # string message_id = 1; // mapped to the URL
1271 # Message message = 2; // mapped to the body
1272 # }
1273 # ```
1274 #
1275 # The following HTTP JSON to RPC mapping is enabled, where the
1276 # representation of the JSON in the request body is determined by
1277 # protos JSON encoding:
1278 #
1279 # HTTP | RPC
1280 # -----|-----
1281 # `PUT /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: "123456" message { text: "Hi!" })`
1282 #
1283 # The special name `*` can be used in the body mapping to define that
1284 # every field not bound by the path template should be mapped to the
1285 # request body. This enables the following alternative definition of
1286 # the update method:
1287 #
1288 # ```proto
1289 # service Messaging {
1290 # rpc UpdateMessage(Message) returns (Message) {
1291 # option (google.api.http) = {
1292 # put: "/v1/messages/{message_id}"
1293 # body: "*"
1294 # };
1295 # }
1296 # }
1297 # message Message {
1298 # string message_id = 1;
1299 # string text = 2;
1300 # }
1301 # ```
1302 #
1303 # The following HTTP JSON to RPC mapping is enabled:
1304 #
1305 # HTTP | RPC
1306 # -----|-----
1307 # `PUT /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: "123456" text: "Hi!")`
1308 #
1309 # Note that when using `*` in the body mapping, it is not possible to
1310 # have HTTP parameters, as all fields not bound by the path end in
1311 # the body. This makes this option more rarely used in practice of
1312 # defining REST APIs. The common usage of `*` is in custom methods
1313 # which don't use the URL at all for transferring data.
1314 #
1315 # It is possible to define multiple HTTP methods for one RPC by using
1316 # the `additional_bindings` option. Example:
1317 #
1318 # ```proto
1319 # service Messaging {
1320 # rpc GetMessage(GetMessageRequest) returns (Message) {
1321 # option (google.api.http) = {
1322 # get: "/v1/messages/{message_id}"
1323 # additional_bindings {
1324 # get: "/v1/users/{user_id}/messages/{message_id}"
1325 # }
1326 # };
1327 # }
1328 # }
1329 # message GetMessageRequest {
1330 # string message_id = 1;
1331 # string user_id = 2;
1332 # }
1333 # ```
1334 #
1335 # This enables the following two alternative HTTP JSON to RPC
1336 # mappings:
1337 #
1338 # HTTP | RPC
1339 # -----|-----
1340 # `GET /v1/messages/123456` | `GetMessage(message_id: "123456")`
1341 # `GET /v1/users/me/messages/123456` | `GetMessage(user_id: "me" message_id: "123456")`
1342 #
1343 # # Rules for HTTP mapping
1344 #
1345 # The rules for mapping HTTP path, query parameters, and body fields
1346 # to the request message are as follows:
1347 #
1348 # 1. The `body` field specifies either `*` or a field path, or is
1349 # omitted. If omitted, it assumes there is no HTTP body.
1350 # 2. Leaf fields (recursive expansion of nested messages in the
1351 # request) can be classified into three types:
1352 # (a) Matched in the URL template.
1353 # (b) Covered by body (if body is `*`, everything except (a) fields;
1354 # else everything under the body field)
1355 # (c) All other fields.
1356 # 3. URL query parameters found in the HTTP request are mapped to (c) fields.
1357 # 4. Any body sent with an HTTP request can contain only (b) fields.
1358 #
1359 # The syntax of the path template is as follows:
1360 #
1361 # Template = "/" Segments [ Verb ] ;
1362 # Segments = Segment { "/" Segment } ;
1363 # Segment = "*" | "**" | LITERAL | Variable ;
1364 # Variable = "{" FieldPath [ "=" Segments ] "}" ;
1365 # FieldPath = IDENT { "." IDENT } ;
1366 # Verb = ":" LITERAL ;
1367 #
1368 # The syntax `*` matches a single path segment. It follows the semantics of
1369 # [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2 Simple String
1370 # Expansion.
1371 #
1372 # The syntax `**` matches zero or more path segments. It follows the semantics
1373 # of [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.3 Reserved
1374 # Expansion.
1375 #
1376 # The syntax `LITERAL` matches literal text in the URL path.
1377 #
1378 # The syntax `Variable` matches the entire path as specified by its template;
1379 # this nested template must not contain further variables. If a variable
1380 # matches a single path segment, its template may be omitted, e.g. `{var}`
1381 # is equivalent to `{var=*}`.
1382 #
1383 # NOTE: the field paths in variables and in the `body` must not refer to
1384 # repeated fields or map fields.
1385 #
1386 # Use CustomHttpPattern to specify any HTTP method that is not included in the
1387 # `pattern` field, such as HEAD, or "*" to leave the HTTP method unspecified for
1388 # a given URL path rule. The wild-card rule is useful for services that provide
1389 # content to Web (HTML) clients.
1390 "body": "A String", # The name of the request field whose value is mapped to the HTTP body, or
1391 # `*` for mapping all fields not captured by the path pattern to the HTTP
1392 # body. NOTE: the referred field must not be a repeated field and must be
1393 # present at the top-level of response message type.
1394 "get": "A String", # Used for listing and getting information about resources.
1395 "mediaDownload": { # Do not use this. For media support, add instead # Do not use this. For media support, add instead
1396 # [][google.bytestream.RestByteStream] as an API to your
1397 # configuration.
1398 # [][google.bytestream.RestByteStream] as an API to your
1399 # configuration.
1400 "enabled": True or False, # Whether download is enabled.
1401 },
1402 "additionalBindings": [ # Additional HTTP bindings for the selector. Nested bindings must
1403 # not contain an `additional_bindings` field themselves (that is,
1404 # the nesting may only be one level deep).
1405 # Object with schema name: HttpRule
1406 ],
1407 "mediaUpload": { # Do not use this. For media support, add instead # Do not use this. For media support, add instead
1408 # [][google.bytestream.RestByteStream] as an API to your
1409 # configuration.
1410 # [][google.bytestream.RestByteStream] as an API to your
1411 # configuration.
1412 "enabled": True or False, # Whether upload is enabled.
1413 },
1414 "custom": { # A custom pattern is used for defining custom HTTP verb. # Custom pattern is used for defining custom verbs.
1415 "path": "A String", # The path matched by this custom verb.
1416 "kind": "A String", # The name of this custom HTTP verb.
1417 },
1418 "responseBody": "A String", # The name of the response field whose value is mapped to the HTTP body of
1419 # response. Other response fields are ignored. This field is optional. When
1420 # not set, the response message will be used as HTTP body of response.
1421 # NOTE: the referred field must be not a repeated field and must be present
1422 # at the top-level of response message type.
1423 "put": "A String", # Used for updating a resource.
1424 "patch": "A String", # Used for updating a resource.
1425 "post": "A String", # Used for creating a resource.
1426 "selector": "A String", # Selects methods to which this rule applies.
1427 #
1428 # Refer to selector for syntax details.
1429 "delete": "A String", # Used for deleting a resource.
1430 },
1431 ],
1432 },
1433 "apis": [ # A list of API interfaces exported by this service. Only the `name` field
1434 # of the google.protobuf.Api needs to be provided by the configuration
1435 # author, as the remaining fields will be derived from the IDL during the
1436 # normalization process. It is an error to specify an API interface here
1437 # which cannot be resolved against the associated IDL files.
1438 { # Api is a light-weight descriptor for a protocol buffer service.
1439 "methods": [ # The methods of this api, in unspecified order.
1440 { # Method represents a method of an api.
1441 "name": "A String", # The simple name of this method.
1442 "requestStreaming": True or False, # If true, the request is streamed.
1443 "responseTypeUrl": "A String", # The URL of the output message type.
1444 "requestTypeUrl": "A String", # A URL of the input message type.
1445 "responseStreaming": True or False, # If true, the response is streamed.
1446 "syntax": "A String", # The source syntax of this method.
1447 "options": [ # Any metadata attached to the method.
1448 { # A protocol buffer option, which can be attached to a message, field,
1449 # enumeration, etc.
1450 "name": "A String", # The option's name. For example, `"java_package"`.
1451 "value": { # The option's value. For example, `"com.google.protobuf"`.
1452 "a_key": "", # Properties of the object. Contains field @type with type URL.
1453 },
1454 },
1455 ],
1456 },
1457 ],
1458 "sourceContext": { # `SourceContext` represents information about the source of a # Source context for the protocol buffer service represented by this
1459 # message.
1460 # protobuf element, like the file in which it is defined.
1461 "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
1462 # protobuf element. For example: `"google/protobuf/source_context.proto"`.
1463 },
1464 "mixins": [ # Included APIs. See Mixin.
1465 { # Declares an API to be included in this API. The including API must
1466 # redeclare all the methods from the included API, but documentation
1467 # and options are inherited as follows:
1468 #
1469 # - If after comment and whitespace stripping, the documentation
1470 # string of the redeclared method is empty, it will be inherited
1471 # from the original method.
1472 #
1473 # - Each annotation belonging to the service config (http,
1474 # visibility) which is not set in the redeclared method will be
1475 # inherited.
1476 #
1477 # - If an http annotation is inherited, the path pattern will be
1478 # modified as follows. Any version prefix will be replaced by the
1479 # version of the including API plus the root path if specified.
1480 #
1481 # Example of a simple mixin:
1482 #
1483 # package google.acl.v1;
1484 # service AccessControl {
1485 # // Get the underlying ACL object.
1486 # rpc GetAcl(GetAclRequest) returns (Acl) {
1487 # option (google.api.http).get = "/v1/{resource=**}:getAcl";
1488 # }
1489 # }
1490 #
1491 # package google.storage.v2;
1492 # service Storage {
1493 # // rpc GetAcl(GetAclRequest) returns (Acl);
1494 #
1495 # // Get a data record.
1496 # rpc GetData(GetDataRequest) returns (Data) {
1497 # option (google.api.http).get = "/v2/{resource=**}";
1498 # }
1499 # }
1500 #
1501 # Example of a mixin configuration:
1502 #
1503 # apis:
1504 # - name: google.storage.v2.Storage
1505 # mixins:
1506 # - name: google.acl.v1.AccessControl
1507 #
1508 # The mixin construct implies that all methods in `AccessControl` are
1509 # also declared with same name and request/response types in
1510 # `Storage`. A documentation generator or annotation processor will
1511 # see the effective `Storage.GetAcl` method after inherting
1512 # documentation and annotations as follows:
1513 #
1514 # service Storage {
1515 # // Get the underlying ACL object.
1516 # rpc GetAcl(GetAclRequest) returns (Acl) {
1517 # option (google.api.http).get = "/v2/{resource=**}:getAcl";
1518 # }
1519 # ...
1520 # }
1521 #
1522 # Note how the version in the path pattern changed from `v1` to `v2`.
1523 #
1524 # If the `root` field in the mixin is specified, it should be a
1525 # relative path under which inherited HTTP paths are placed. Example:
1526 #
1527 # apis:
1528 # - name: google.storage.v2.Storage
1529 # mixins:
1530 # - name: google.acl.v1.AccessControl
1531 # root: acls
1532 #
1533 # This implies the following inherited HTTP annotation:
1534 #
1535 # service Storage {
1536 # // Get the underlying ACL object.
1537 # rpc GetAcl(GetAclRequest) returns (Acl) {
1538 # option (google.api.http).get = "/v2/acls/{resource=**}:getAcl";
1539 # }
1540 # ...
1541 # }
1542 "root": "A String", # If non-empty specifies a path under which inherited HTTP paths
1543 # are rooted.
1544 "name": "A String", # The fully qualified name of the API which is included.
1545 },
1546 ],
1547 "syntax": "A String", # The source syntax of the service.
1548 "version": "A String", # A version string for this api. If specified, must have the form
1549 # `major-version.minor-version`, as in `1.10`. If the minor version
1550 # is omitted, it defaults to zero. If the entire version field is
1551 # empty, the major version is derived from the package name, as
1552 # outlined below. If the field is not empty, the version in the
1553 # package name will be verified to be consistent with what is
1554 # provided here.
1555 #
1556 # The versioning schema uses [semantic
1557 # versioning](http://semver.org) where the major version number
1558 # indicates a breaking change and the minor version an additive,
1559 # non-breaking change. Both version numbers are signals to users
1560 # what to expect from different versions, and should be carefully
1561 # chosen based on the product plan.
1562 #
1563 # The major version is also reflected in the package name of the
1564 # API, which must end in `v<major-version>`, as in
1565 # `google.feature.v1`. For major versions 0 and 1, the suffix can
1566 # be omitted. Zero major versions must only be used for
1567 # experimental, none-GA apis.
1568 "options": [ # Any metadata attached to the API.
1569 { # A protocol buffer option, which can be attached to a message, field,
1570 # enumeration, etc.
1571 "name": "A String", # The option's name. For example, `"java_package"`.
1572 "value": { # The option's value. For example, `"com.google.protobuf"`.
1573 "a_key": "", # Properties of the object. Contains field @type with type URL.
1574 },
1575 },
1576 ],
1577 "name": "A String", # The fully qualified name of this api, including package name
1578 # followed by the api's simple name.
1579 },
1580 ],
1581 "customError": { # Customize service error responses. For example, list any service # Custom error configuration.
1582 # specific protobuf types that can appear in error detail lists of
1583 # error responses.
1584 #
1585 # Example:
1586 #
1587 # custom_error:
1588 # types:
1589 # - google.foo.v1.CustomError
1590 # - google.foo.v1.AnotherError
1591 "rules": [ # The list of custom error rules that apply to individual API messages.
1592 #
1593 # **NOTE:** All service configuration rules follow "last one wins" order.
1594 { # A custom error rule.
1595 "isErrorType": True or False, # Mark this message as possible payload in error response. Otherwise,
1596 # objects of this type will be filtered when they appear in error payload.
1597 "selector": "A String", # Selects messages to which this rule applies.
1598 #
1599 # Refer to selector for syntax details.
1600 },
1601 ],
1602 "types": [ # The list of custom error detail types, e.g. 'google.foo.v1.CustomError'.
1603 "A String",
1604 ],
1605 },
1606 "visibility": { # `Visibility` defines restrictions for the visibility of service # API visibility configuration.
1607 # elements. Restrictions are specified using visibility labels
1608 # (e.g., TRUSTED_TESTER) that are elsewhere linked to users and projects.
1609 #
1610 # Users and projects can have access to more than one visibility label. The
1611 # effective visibility for multiple labels is the union of each label's
1612 # elements, plus any unrestricted elements.
1613 #
1614 # If an element and its parents have no restrictions, visibility is
1615 # unconditionally granted.
1616 #
1617 # Example:
1618 #
1619 # visibility:
1620 # rules:
1621 # - selector: google.calendar.Calendar.EnhancedSearch
1622 # restriction: TRUSTED_TESTER
1623 # - selector: google.calendar.Calendar.Delegate
1624 # restriction: GOOGLE_INTERNAL
1625 #
1626 # Here, all methods are publicly visible except for the restricted methods
1627 # EnhancedSearch and Delegate.
1628 "rules": [ # A list of visibility rules that apply to individual API elements.
1629 #
1630 # **NOTE:** All service configuration rules follow "last one wins" order.
1631 { # A visibility rule provides visibility configuration for an individual API
1632 # element.
Sai Cheemalapatiea3a5e12016-10-12 14:05:53 -07001633 "restriction": "A String", # A comma-separated list of visibility labels that apply to the `selector`.
1634 # Any of the listed labels can be used to grant the visibility.
Jon Wayne Parrott7d5badb2016-08-16 12:44:29 -07001635 #
1636 # If a rule has multiple labels, removing one of the labels but not all of
1637 # them can break clients.
1638 #
1639 # Example:
1640 #
1641 # visibility:
1642 # rules:
1643 # - selector: google.calendar.Calendar.EnhancedSearch
1644 # restriction: GOOGLE_INTERNAL, TRUSTED_TESTER
1645 #
1646 # Removing GOOGLE_INTERNAL from this restriction will break clients that
1647 # rely on this method and only had access to it through GOOGLE_INTERNAL.
1648 "selector": "A String", # Selects methods, messages, fields, enums, etc. to which this rule applies.
1649 #
1650 # Refer to selector for syntax details.
1651 },
1652 ],
1653 },
1654 "metrics": [ # Defines the metrics used by this service.
1655 { # Defines a metric type and its schema.
1656 "displayName": "A String", # A concise name for the metric, which can be displayed in user interfaces.
1657 # Use sentence case without an ending period, for example "Request count".
1658 "description": "A String", # A detailed description of the metric, which can be used in documentation.
1659 "metricKind": "A String", # Whether the metric records instantaneous values, changes to a value, etc.
Sai Cheemalapatiea3a5e12016-10-12 14:05:53 -07001660 # Some combinations of `metric_kind` and `value_type` might not be supported.
Jon Wayne Parrott7d5badb2016-08-16 12:44:29 -07001661 "valueType": "A String", # Whether the measurement is an integer, a floating-point number, etc.
Sai Cheemalapatiea3a5e12016-10-12 14:05:53 -07001662 # Some combinations of `metric_kind` and `value_type` might not be supported.
Jon Wayne Parrott7d5badb2016-08-16 12:44:29 -07001663 "labels": [ # The set of labels that can be used to describe a specific instance of this
1664 # metric type. For example, the
1665 # `compute.googleapis.com/instance/network/received_bytes_count` metric type
1666 # has a label, `loadbalanced`, that specifies whether the traffic was
1667 # received through a load balanced IP address.
1668 { # A description of a label.
1669 "valueType": "A String", # The type of data that can be assigned to the label.
1670 "description": "A String", # A human-readable description for the label.
1671 "key": "A String", # The label key.
1672 },
1673 ],
1674 "type": "A String", # The metric type including a DNS name prefix, for example
1675 # `"compute.googleapis.com/instance/cpu/utilization"`. Metric types
1676 # should use a natural hierarchical grouping such as the following:
1677 #
1678 # compute.googleapis.com/instance/cpu/utilization
1679 # compute.googleapis.com/instance/disk/read_ops_count
1680 # compute.googleapis.com/instance/network/received_bytes_count
1681 #
1682 # Note that if the metric type changes, the monitoring data will be
1683 # discontinued, and anything depends on it will break, such as monitoring
1684 # dashboards, alerting rules and quota limits. Therefore, once a metric has
1685 # been published, its type should be immutable.
1686 "unit": "A String", # The unit in which the metric value is reported. It is only applicable
1687 # if the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The
1688 # supported units are a subset of [The Unified Code for Units of
1689 # Measure](http://unitsofmeasure.org/ucum.html) standard:
1690 #
1691 # **Basic units (UNIT)**
1692 #
1693 # * `bit` bit
1694 # * `By` byte
1695 # * `s` second
1696 # * `min` minute
1697 # * `h` hour
1698 # * `d` day
1699 #
1700 # **Prefixes (PREFIX)**
1701 #
1702 # * `k` kilo (10**3)
1703 # * `M` mega (10**6)
1704 # * `G` giga (10**9)
1705 # * `T` tera (10**12)
1706 # * `P` peta (10**15)
1707 # * `E` exa (10**18)
1708 # * `Z` zetta (10**21)
1709 # * `Y` yotta (10**24)
1710 # * `m` milli (10**-3)
1711 # * `u` micro (10**-6)
1712 # * `n` nano (10**-9)
1713 # * `p` pico (10**-12)
1714 # * `f` femto (10**-15)
1715 # * `a` atto (10**-18)
1716 # * `z` zepto (10**-21)
1717 # * `y` yocto (10**-24)
1718 # * `Ki` kibi (2**10)
1719 # * `Mi` mebi (2**20)
1720 # * `Gi` gibi (2**30)
1721 # * `Ti` tebi (2**40)
1722 #
1723 # **Grammar**
1724 #
1725 # The grammar includes the dimensionless unit `1`, such as `1/s`.
1726 #
1727 # The grammar also includes these connectors:
1728 #
1729 # * `/` division (as an infix operator, e.g. `1/s`).
1730 # * `.` multiplication (as an infix operator, e.g. `GBy.d`)
1731 #
1732 # The grammar for a unit is as follows:
1733 #
1734 # Expression = Component { "." Component } { "/" Component } ;
1735 #
1736 # Component = [ PREFIX ] UNIT [ Annotation ]
1737 # | Annotation
1738 # | "1"
1739 # ;
1740 #
1741 # Annotation = "{" NAME "}" ;
1742 #
1743 # Notes:
1744 #
1745 # * `Annotation` is just a comment if it follows a `UNIT` and is
1746 # equivalent to `1` if it is used alone. For examples,
1747 # `{requests}/s == 1/s`, `By{transmitted}/s == By/s`.
1748 # * `NAME` is a sequence of non-blank printable ASCII characters not
1749 # containing '{' or '}'.
1750 "name": "A String", # Resource name. The format of the name may vary between different
1751 # implementations. For examples:
1752 #
1753 # projects/{project_id}/metricDescriptors/{type=**}
1754 # metricDescriptors/{type=**}
1755 },
1756 ],
1757 "enums": [ # A list of all enum types included in this API service. Enums
1758 # referenced directly or indirectly by the `apis` are automatically
1759 # included. Enums which are not referenced but shall be included
1760 # should be listed here by name. Example:
1761 #
1762 # enums:
1763 # - name: google.someapi.v1.SomeEnum
1764 { # Enum type definition.
1765 "sourceContext": { # `SourceContext` represents information about the source of a # The source context.
1766 # protobuf element, like the file in which it is defined.
1767 "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
1768 # protobuf element. For example: `"google/protobuf/source_context.proto"`.
1769 },
1770 "enumvalue": [ # Enum value definitions.
1771 { # Enum value definition.
1772 "number": 42, # Enum value number.
1773 "options": [ # Protocol buffer options.
1774 { # A protocol buffer option, which can be attached to a message, field,
1775 # enumeration, etc.
1776 "name": "A String", # The option's name. For example, `"java_package"`.
1777 "value": { # The option's value. For example, `"com.google.protobuf"`.
1778 "a_key": "", # Properties of the object. Contains field @type with type URL.
1779 },
1780 },
1781 ],
1782 "name": "A String", # Enum value name.
1783 },
1784 ],
1785 "options": [ # Protocol buffer options.
1786 { # A protocol buffer option, which can be attached to a message, field,
1787 # enumeration, etc.
1788 "name": "A String", # The option's name. For example, `"java_package"`.
1789 "value": { # The option's value. For example, `"com.google.protobuf"`.
1790 "a_key": "", # Properties of the object. Contains field @type with type URL.
1791 },
1792 },
1793 ],
1794 "name": "A String", # Enum type name.
1795 "syntax": "A String", # The source syntax.
1796 },
1797 ],
1798 "types": [ # A list of all proto message types included in this API service.
1799 # Types referenced directly or indirectly by the `apis` are
1800 # automatically included. Messages which are not referenced but
1801 # shall be included, such as types used by the `google.protobuf.Any` type,
1802 # should be listed here by name. Example:
1803 #
1804 # types:
1805 # - name: google.protobuf.Int32
1806 { # A protocol buffer message type.
1807 "oneofs": [ # The list of types appearing in `oneof` definitions in this type.
1808 "A String",
1809 ],
1810 "name": "A String", # The fully qualified message name.
1811 "sourceContext": { # `SourceContext` represents information about the source of a # The source context.
1812 # protobuf element, like the file in which it is defined.
1813 "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
1814 # protobuf element. For example: `"google/protobuf/source_context.proto"`.
1815 },
1816 "syntax": "A String", # The source syntax.
1817 "fields": [ # The list of fields.
1818 { # A single field of a message type.
1819 "kind": "A String", # The field type.
1820 "oneofIndex": 42, # The index of the field type in `Type.oneofs`, for message or enumeration
1821 # types. The first type has index 1; zero means the type is not in the list.
1822 "typeUrl": "A String", # The field type URL, without the scheme, for message or enumeration
1823 # types. Example: `"type.googleapis.com/google.protobuf.Timestamp"`.
1824 "name": "A String", # The field name.
1825 "defaultValue": "A String", # The string value of the default value of this field. Proto2 syntax only.
1826 "jsonName": "A String", # The field JSON name.
1827 "number": 42, # The field number.
1828 "cardinality": "A String", # The field cardinality.
1829 "options": [ # The protocol buffer options.
1830 { # A protocol buffer option, which can be attached to a message, field,
1831 # enumeration, etc.
1832 "name": "A String", # The option's name. For example, `"java_package"`.
1833 "value": { # The option's value. For example, `"com.google.protobuf"`.
1834 "a_key": "", # Properties of the object. Contains field @type with type URL.
1835 },
1836 },
1837 ],
1838 "packed": True or False, # Whether to use alternative packed wire representation.
1839 },
1840 ],
1841 "options": [ # The protocol buffer options.
1842 { # A protocol buffer option, which can be attached to a message, field,
1843 # enumeration, etc.
1844 "name": "A String", # The option's name. For example, `"java_package"`.
1845 "value": { # The option's value. For example, `"com.google.protobuf"`.
1846 "a_key": "", # Properties of the object. Contains field @type with type URL.
1847 },
1848 },
1849 ],
1850 },
1851 ],
Sai Cheemalapatiea3a5e12016-10-12 14:05:53 -07001852 "logging": { # Logging configuration of the service. # Logging configuration.
Jon Wayne Parrott7d5badb2016-08-16 12:44:29 -07001853 #
1854 # The following example shows how to configure logs to be sent to the
Sai Cheemalapatidf613972016-10-21 13:59:49 -07001855 # producer and consumer projects. In the example, the `activity_history`
1856 # log is sent to both the producer and consumer projects, whereas the
1857 # `purchase_history` log is only sent to the producer project.
Jon Wayne Parrott7d5badb2016-08-16 12:44:29 -07001858 #
1859 # monitored_resources:
1860 # - type: library.googleapis.com/branch
1861 # labels:
1862 # - key: /city
1863 # description: The city where the library branch is located in.
1864 # - key: /name
1865 # description: The name of the branch.
1866 # logs:
Sai Cheemalapatidf613972016-10-21 13:59:49 -07001867 # - name: activity_history
Jon Wayne Parrott7d5badb2016-08-16 12:44:29 -07001868 # labels:
1869 # - key: /customer_id
Sai Cheemalapatidf613972016-10-21 13:59:49 -07001870 # - name: purchase_history
Jon Wayne Parrott7d5badb2016-08-16 12:44:29 -07001871 # logging:
1872 # producer_destinations:
1873 # - monitored_resource: library.googleapis.com/branch
1874 # logs:
Sai Cheemalapatidf613972016-10-21 13:59:49 -07001875 # - activity_history
1876 # - purchase_history
Jon Wayne Parrott7d5badb2016-08-16 12:44:29 -07001877 # consumer_destinations:
1878 # - monitored_resource: library.googleapis.com/branch
1879 # logs:
Sai Cheemalapatidf613972016-10-21 13:59:49 -07001880 # - activity_history
Jon Wayne Parrott7d5badb2016-08-16 12:44:29 -07001881 "producerDestinations": [ # Logging configurations for sending logs to the producer project.
1882 # There can be multiple producer destinations, each one must have a
1883 # different monitored resource type. A log can be used in at most
1884 # one producer destination.
1885 { # Configuration of a specific logging destination (the producer project
1886 # or the consumer project).
Sai Cheemalapatidf613972016-10-21 13:59:49 -07001887 "monitoredResource": "A String", # The monitored resource type. The type must be defined in the
Jon Wayne Parrott7d5badb2016-08-16 12:44:29 -07001888 # Service.monitored_resources section.
1889 "logs": [ # Names of the logs to be sent to this destination. Each name must
Sai Cheemalapatidf613972016-10-21 13:59:49 -07001890 # be defined in the Service.logs section. If the log name is
1891 # not a domain scoped name, it will be automatically prefixed with
1892 # the service name followed by "/".
Jon Wayne Parrott7d5badb2016-08-16 12:44:29 -07001893 "A String",
1894 ],
1895 },
1896 ],
1897 "consumerDestinations": [ # Logging configurations for sending logs to the consumer project.
1898 # There can be multiple consumer destinations, each one must have a
1899 # different monitored resource type. A log can be used in at most
1900 # one consumer destination.
1901 { # Configuration of a specific logging destination (the producer project
1902 # or the consumer project).
Sai Cheemalapatidf613972016-10-21 13:59:49 -07001903 "monitoredResource": "A String", # The monitored resource type. The type must be defined in the
Jon Wayne Parrott7d5badb2016-08-16 12:44:29 -07001904 # Service.monitored_resources section.
1905 "logs": [ # Names of the logs to be sent to this destination. Each name must
Sai Cheemalapatidf613972016-10-21 13:59:49 -07001906 # be defined in the Service.logs section. If the log name is
1907 # not a domain scoped name, it will be automatically prefixed with
1908 # the service name followed by "/".
Jon Wayne Parrott7d5badb2016-08-16 12:44:29 -07001909 "A String",
1910 ],
1911 },
1912 ],
1913 },
1914 "name": "A String", # The DNS address at which this service is available,
1915 # e.g. `calendar.googleapis.com`.
1916 "documentation": { # `Documentation` provides the information for describing a service. # Additional API documentation.
1917 #
1918 # Example:
1919 # <pre><code>documentation:
1920 # summary: >
1921 # The Google Calendar API gives access
1922 # to most calendar features.
1923 # pages:
1924 # - name: Overview
1925 # content: &#40;== include google/foo/overview.md ==&#41;
1926 # - name: Tutorial
1927 # content: &#40;== include google/foo/tutorial.md ==&#41;
1928 # subpages;
1929 # - name: Java
1930 # content: &#40;== include google/foo/tutorial_java.md ==&#41;
1931 # rules:
1932 # - selector: google.calendar.Calendar.Get
1933 # description: >
1934 # ...
1935 # - selector: google.calendar.Calendar.Put
1936 # description: >
1937 # ...
1938 # </code></pre>
1939 # Documentation is provided in markdown syntax. In addition to
1940 # standard markdown features, definition lists, tables and fenced
1941 # code blocks are supported. Section headers can be provided and are
1942 # interpreted relative to the section nesting of the context where
1943 # a documentation fragment is embedded.
1944 #
1945 # Documentation from the IDL is merged with documentation defined
1946 # via the config at normalization time, where documentation provided
1947 # by config rules overrides IDL provided.
1948 #
1949 # A number of constructs specific to the API platform are supported
1950 # in documentation text.
1951 #
1952 # In order to reference a proto element, the following
1953 # notation can be used:
1954 # <pre><code>&#91;fully.qualified.proto.name]&#91;]</code></pre>
1955 # To override the display text used for the link, this can be used:
1956 # <pre><code>&#91;display text]&#91;fully.qualified.proto.name]</code></pre>
1957 # Text can be excluded from doc using the following notation:
1958 # <pre><code>&#40;-- internal comment --&#41;</code></pre>
1959 # Comments can be made conditional using a visibility label. The below
1960 # text will be only rendered if the `BETA` label is available:
1961 # <pre><code>&#40;--BETA: comment for BETA users --&#41;</code></pre>
1962 # A few directives are available in documentation. Note that
1963 # directives must appear on a single line to be properly
1964 # identified. The `include` directive includes a markdown file from
1965 # an external source:
1966 # <pre><code>&#40;== include path/to/file ==&#41;</code></pre>
1967 # The `resource_for` directive marks a message to be the resource of
1968 # a collection in REST view. If it is not specified, tools attempt
1969 # to infer the resource from the operations in a collection:
1970 # <pre><code>&#40;== resource_for v1.shelves.books ==&#41;</code></pre>
1971 # The directive `suppress_warning` does not directly affect documentation
1972 # and is documented together with service config validation.
1973 "rules": [ # A list of documentation rules that apply to individual API elements.
1974 #
1975 # **NOTE:** All service configuration rules follow "last one wins" order.
1976 { # A documentation rule provides information about individual API elements.
1977 "description": "A String", # Description of the selected API(s).
1978 "deprecationDescription": "A String", # Deprecation description of the selected element(s). It can be provided if an
1979 # element is marked as `deprecated`.
1980 "selector": "A String", # The selector is a comma-separated list of patterns. Each pattern is a
1981 # qualified name of the element which may end in "*", indicating a wildcard.
1982 # Wildcards are only allowed at the end and for a whole component of the
1983 # qualified name, i.e. "foo.*" is ok, but not "foo.b*" or "foo.*.bar". To
1984 # specify a default for all applicable elements, the whole pattern "*"
1985 # is used.
1986 },
1987 ],
1988 "overview": "A String", # Declares a single overview page. For example:
1989 # <pre><code>documentation:
1990 # summary: ...
1991 # overview: &#40;== include overview.md ==&#41;
1992 # </code></pre>
1993 # This is a shortcut for the following declaration (using pages style):
1994 # <pre><code>documentation:
1995 # summary: ...
1996 # pages:
1997 # - name: Overview
1998 # content: &#40;== include overview.md ==&#41;
1999 # </code></pre>
2000 # Note: you cannot specify both `overview` field and `pages` field.
2001 "summary": "A String", # A short summary of what the service does. Can only be provided by
2002 # plain text.
2003 "pages": [ # The top level pages for the documentation set.
2004 { # Represents a documentation page. A page can contain subpages to represent
2005 # nested documentation set structure.
2006 "content": "A String", # The Markdown content of the page. You can use <code>&#40;== include {path} ==&#41;</code>
2007 # to include content from a Markdown file.
2008 "subpages": [ # Subpages of this page. The order of subpages specified here will be
2009 # honored in the generated docset.
2010 # Object with schema name: Page
2011 ],
2012 "name": "A String", # The name of the page. It will be used as an identity of the page to
2013 # generate URI of the page, text of the link to this page in navigation,
2014 # etc. The full page name (start from the root page name to this page
2015 # concatenated with `.`) can be used as reference to the page in your
2016 # documentation. For example:
2017 # <pre><code>pages:
2018 # - name: Tutorial
2019 # content: &#40;== include tutorial.md ==&#41;
2020 # subpages:
2021 # - name: Java
2022 # content: &#40;== include tutorial_java.md ==&#41;
2023 # </code></pre>
2024 # You can reference `Java` page using Markdown reference link syntax:
2025 # `Java`.
2026 },
2027 ],
2028 "documentationRootUrl": "A String", # The URL to the root of documentation.
2029 },
2030 "systemTypes": [ # A list of all proto message types included in this API service.
2031 # It serves similar purpose as [google.api.Service.types], except that
2032 # these types are not needed by user-defined APIs. Therefore, they will not
2033 # show up in the generated discovery doc. This field should only be used
2034 # to define system APIs in ESF.
2035 { # A protocol buffer message type.
2036 "oneofs": [ # The list of types appearing in `oneof` definitions in this type.
2037 "A String",
2038 ],
2039 "name": "A String", # The fully qualified message name.
2040 "sourceContext": { # `SourceContext` represents information about the source of a # The source context.
2041 # protobuf element, like the file in which it is defined.
2042 "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
2043 # protobuf element. For example: `"google/protobuf/source_context.proto"`.
2044 },
2045 "syntax": "A String", # The source syntax.
2046 "fields": [ # The list of fields.
2047 { # A single field of a message type.
2048 "kind": "A String", # The field type.
2049 "oneofIndex": 42, # The index of the field type in `Type.oneofs`, for message or enumeration
2050 # types. The first type has index 1; zero means the type is not in the list.
2051 "typeUrl": "A String", # The field type URL, without the scheme, for message or enumeration
2052 # types. Example: `"type.googleapis.com/google.protobuf.Timestamp"`.
2053 "name": "A String", # The field name.
2054 "defaultValue": "A String", # The string value of the default value of this field. Proto2 syntax only.
2055 "jsonName": "A String", # The field JSON name.
2056 "number": 42, # The field number.
2057 "cardinality": "A String", # The field cardinality.
2058 "options": [ # The protocol buffer options.
2059 { # A protocol buffer option, which can be attached to a message, field,
2060 # enumeration, etc.
2061 "name": "A String", # The option's name. For example, `"java_package"`.
2062 "value": { # The option's value. For example, `"com.google.protobuf"`.
2063 "a_key": "", # Properties of the object. Contains field @type with type URL.
2064 },
2065 },
2066 ],
2067 "packed": True or False, # Whether to use alternative packed wire representation.
2068 },
2069 ],
2070 "options": [ # The protocol buffer options.
2071 { # A protocol buffer option, which can be attached to a message, field,
2072 # enumeration, etc.
2073 "name": "A String", # The option's name. For example, `"java_package"`.
2074 "value": { # The option's value. For example, `"com.google.protobuf"`.
2075 "a_key": "", # Properties of the object. Contains field @type with type URL.
2076 },
2077 },
2078 ],
2079 },
2080 ],
2081 "context": { # `Context` defines which contexts an API requests. # Context configuration.
2082 #
2083 # Example:
2084 #
2085 # context:
2086 # rules:
2087 # - selector: "*"
2088 # requested:
2089 # - google.rpc.context.ProjectContext
2090 # - google.rpc.context.OriginContext
2091 #
2092 # The above specifies that all methods in the API request
2093 # `google.rpc.context.ProjectContext` and
2094 # `google.rpc.context.OriginContext`.
2095 #
2096 # Available context types are defined in package
2097 # `google.rpc.context`.
2098 "rules": [ # A list of RPC context rules that apply to individual API methods.
2099 #
2100 # **NOTE:** All service configuration rules follow "last one wins" order.
2101 { # A context rule provides information about the context for an individual API
2102 # element.
2103 "provided": [ # A list of full type names of provided contexts.
2104 "A String",
2105 ],
2106 "requested": [ # A list of full type names of requested contexts.
2107 "A String",
2108 ],
2109 "selector": "A String", # Selects the methods to which this rule applies.
2110 #
2111 # Refer to selector for syntax details.
2112 },
2113 ],
2114 },
Sai Cheemalapatiea3a5e12016-10-12 14:05:53 -07002115 "endpoints": [ # Configuration for network endpoints. If this is empty, then an endpoint
2116 # with the same name as the service is automatically generated to service all
2117 # defined APIs.
2118 { # `Endpoint` describes a network endpoint that serves a set of APIs.
2119 # A service may expose any number of endpoints, and all endpoints share the
2120 # same service configuration, such as quota configuration and monitoring
2121 # configuration.
2122 #
2123 # Example service configuration:
2124 #
2125 # name: library-example.googleapis.com
2126 # endpoints:
2127 # # Below entry makes 'google.example.library.v1.Library'
2128 # # API be served from endpoint address library-example.googleapis.com.
2129 # # It also allows HTTP OPTIONS calls to be passed to the backend, for
2130 # # it to decide whether the subsequent cross-origin request is
2131 # # allowed to proceed.
2132 # - name: library-example.googleapis.com
2133 # apis: google.example.library.v1.Library
2134 # allow_cors: true
2135 # # Below entry makes 'google.example.library.v1.Library'
2136 # # API be served from endpoint address
2137 # # google.example.library-example.v1.LibraryManager.
2138 # - name: library-manager.googleapis.com
2139 # apis: google.example.library.v1.LibraryManager
2140 # # BNS address for a borg job. Can specify a task by appending
2141 # # "/taskId" (e.g. "/0") to the job spec.
2142 #
2143 # Example OpenAPI extension for endpoint with allow_cors set to true:
2144 #
2145 # {
2146 # "swagger": "2.0",
2147 # "info": {
2148 # "description": "A simple..."
2149 # },
2150 # "host": "MY_PROJECT_ID.appspot.com",
2151 # "x-google-endpoints": [{
2152 # "name": "MY_PROJECT_ID.appspot.com",
2153 # "allow_cors": "true"
2154 # }]
2155 # }
2156 "allowCors": True or False, # Allowing
2157 # [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka
2158 # cross-domain traffic, would allow the backends served from this endpoint to
2159 # receive and respond to HTTP OPTIONS requests. The response will be used by
2160 # the browser to determine whether the subsequent cross-origin request is
2161 # allowed to proceed.
2162 "aliases": [ # DEPRECATED: This field is no longer supported. Instead of using aliases,
2163 # please specify multiple google.api.Endpoint for each of the intented
2164 # alias.
2165 #
2166 # Additional names that this endpoint will be hosted on.
2167 "A String",
2168 ],
2169 "features": [ # The list of features enabled on this endpoint.
2170 "A String",
2171 ],
2172 "name": "A String", # The canonical name of this endpoint.
2173 "apis": [ # The list of APIs served by this endpoint.
2174 "A String",
2175 ],
2176 },
2177 ],
Jon Wayne Parrott7d5badb2016-08-16 12:44:29 -07002178 }</pre>
2179</div>
2180
2181<div class="method">
2182 <code class="details" id="getIamPolicy">getIamPolicy(resource=None, body, x__xgafv=None)</code>
2183 <pre>Gets the access control policy for a resource.
2184Returns an empty policy if the resource exists and does not have a policy
2185set.
2186
2187Args:
2188 resource: string, REQUIRED: The resource for which the policy is being requested.
2189`resource` is usually specified as a path. For example, a Project
2190resource is specified as `projects/{project}`. (required)
2191 body: object, The request body. (required)
2192 The object takes the form of:
2193
2194{ # Request message for `GetIamPolicy` method.
2195 }
2196
2197 x__xgafv: string, V1 error format.
2198 Allowed values
2199 1 - v1 error format
2200 2 - v2 error format
2201
2202Returns:
2203 An object of the form:
2204
2205 { # Defines an Identity and Access Management (IAM) policy. It is used to
2206 # specify access control policies for Cloud Platform resources.
2207 #
2208 #
2209 # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
2210 # `members` to a `role`, where the members can be user accounts, Google groups,
2211 # Google domains, and service accounts. A `role` is a named list of permissions
2212 # defined by IAM.
2213 #
2214 # **Example**
2215 #
2216 # {
2217 # "bindings": [
2218 # {
2219 # "role": "roles/owner",
2220 # "members": [
2221 # "user:mike@example.com",
2222 # "group:admins@example.com",
2223 # "domain:google.com",
2224 # "serviceAccount:my-other-app@appspot.gserviceaccount.com",
2225 # ]
2226 # },
2227 # {
2228 # "role": "roles/viewer",
2229 # "members": ["user:sean@example.com"]
2230 # }
2231 # ]
2232 # }
2233 #
2234 # For a description of IAM and its features, see the
2235 # [IAM developer's guide](https://cloud.google.com/iam).
2236 "auditConfigs": [ # Specifies audit logging configs for "data access".
2237 # "data access": generally refers to data reads/writes and admin reads.
2238 # "admin activity": generally refers to admin writes.
2239 #
2240 # Note: `AuditConfig` doesn't apply to "admin activity", which always
2241 # enables audit logging.
2242 { # Enables "data access" audit logging for a service and specifies a list
2243 # of members that are log-exempted.
2244 "exemptedMembers": [ # Specifies the identities that are exempted from "data access" audit
2245 # logging for the `service` specified above.
2246 # Follows the same format of Binding.members.
2247 "A String",
2248 ],
2249 "service": "A String", # Specifies a service that will be enabled for "data access" audit
2250 # logging.
2251 # For example, `resourcemanager`, `storage`, `compute`.
2252 # `allServices` is a special value that covers all services.
2253 },
2254 ],
2255 "rules": [ # If more than one rule is specified, the rules are applied in the following
2256 # manner:
2257 # - All matching LOG rules are always applied.
2258 # - If any DENY/DENY_WITH_LOG rule matches, permission is denied.
2259 # Logging will be applied if one or more matching rule requires logging.
2260 # - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
2261 # granted.
2262 # Logging will be applied if one or more matching rule requires logging.
2263 # - Otherwise, if no rule applies, permission is denied.
2264 { # A rule to be applied in a Policy.
2265 "notIn": [ # If one or more 'not_in' clauses are specified, the rule matches
2266 # if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
2267 # The format for in and not_in entries is the same as for members in a
2268 # Binding (see google/iam/v1/policy.proto).
2269 "A String",
2270 ],
2271 "description": "A String", # Human-readable description of the rule.
2272 "in": [ # If one or more 'in' clauses are specified, the rule matches if
2273 # the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
2274 "A String",
2275 ],
2276 "action": "A String", # Required
2277 "conditions": [ # Additional restrictions that must be met
2278 { # A condition to be met.
2279 "iam": "A String", # Trusted attributes supplied by the IAM system.
2280 "svc": "A String", # Trusted attributes discharged by the service.
2281 "value": "A String", # DEPRECATED. Use 'values' instead.
2282 "sys": "A String", # Trusted attributes supplied by any service that owns resources and uses
2283 # the IAM system for access control.
2284 "values": [ # The objects of the condition. This is mutually exclusive with 'value'.
2285 "A String",
2286 ],
2287 "op": "A String", # An operator to apply the subject with.
2288 },
2289 ],
2290 "logConfig": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
2291 # that match the LOG action.
2292 { # Specifies what kind of log the caller must write
2293 # Increment a streamz counter with the specified metric and field names.
2294 #
2295 # Metric names should start with a '/', generally be lowercase-only,
2296 # and end in "_count". Field names should not contain an initial slash.
2297 # The actual exported metric names will have "/iam/policy" prepended.
2298 #
2299 # Field names correspond to IAM request parameters and field values are
2300 # their respective values.
2301 #
2302 # At present the only supported field names are
2303 # - "iam_principal", corresponding to IAMContext.principal;
2304 # - "" (empty string), resulting in one aggretated counter with no field.
2305 #
2306 # Examples:
2307 # counter { metric: "/debug_access_count" field: "iam_principal" }
2308 # ==> increment counter /iam/policy/backend_debug_access_count
2309 # {iam_principal=[value of IAMContext.principal]}
2310 #
2311 # At this time we do not support:
2312 # * multiple field names (though this may be supported in the future)
2313 # * decrementing the counter
2314 # * incrementing it by anything other than 1
2315 "counter": { # Options for counters # Counter options.
2316 "field": "A String", # The field value to attribute.
2317 "metric": "A String", # The metric to update.
2318 },
2319 "dataAccess": { # Write a Data Access (Gin) log # Data access options.
2320 },
2321 "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
2322 },
2323 },
2324 ],
2325 "permissions": [ # A permission is a string of form '<service>.<resource type>.<verb>'
2326 # (e.g., 'storage.buckets.list'). A value of '*' matches all permissions,
2327 # and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
2328 "A String",
2329 ],
2330 },
2331 ],
2332 "version": 42, # Version of the `Policy`. The default version is 0.
2333 "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
2334 # prevent simultaneous updates of a policy from overwriting each other.
2335 # It is strongly suggested that systems make use of the `etag` in the
2336 # read-modify-write cycle to perform policy updates in order to avoid race
2337 # conditions: An `etag` is returned in the response to `getIamPolicy`, and
2338 # systems are expected to put that etag in the request to `setIamPolicy` to
2339 # ensure that their change will be applied to the same version of the policy.
2340 #
2341 # If no `etag` is provided in the call to `setIamPolicy`, then the existing
2342 # policy is overwritten blindly.
2343 "bindings": [ # Associates a list of `members` to a `role`.
2344 # Multiple `bindings` must not be specified for the same `role`.
2345 # `bindings` with no members will result in an error.
2346 { # Associates `members` with a `role`.
2347 "role": "A String", # Role that is assigned to `members`.
2348 # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
2349 # Required
2350 "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
2351 # `members` can have the following values:
2352 #
2353 # * `allUsers`: A special identifier that represents anyone who is
2354 # on the internet; with or without a Google account.
2355 #
2356 # * `allAuthenticatedUsers`: A special identifier that represents anyone
2357 # who is authenticated with a Google account or a service account.
2358 #
2359 # * `user:{emailid}`: An email address that represents a specific Google
2360 # account. For example, `alice@gmail.com` or `joe@example.com`.
2361 #
Sai Cheemalapatidf613972016-10-21 13:59:49 -07002362 #
Jon Wayne Parrott7d5badb2016-08-16 12:44:29 -07002363 # * `serviceAccount:{emailid}`: An email address that represents a service
2364 # account. For example, `my-other-app@appspot.gserviceaccount.com`.
2365 #
2366 # * `group:{emailid}`: An email address that represents a Google group.
2367 # For example, `admins@example.com`.
2368 #
2369 # * `domain:{domain}`: A Google Apps domain name that represents all the
2370 # users of that domain. For example, `google.com` or `example.com`.
2371 #
2372 "A String",
2373 ],
2374 },
2375 ],
2376 "iamOwned": True or False,
2377 }</pre>
2378</div>
2379
2380<div class="method">
2381 <code class="details" id="list">list(producerProjectId=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
2382 <pre>Lists all managed services.
2383
2384Args:
2385 producerProjectId: string, Include services produced by the specified project.
2386 pageSize: integer, Requested size of the next page of data.
2387 pageToken: string, Token identifying which result to start with; returned by a previous list
2388call.
2389 x__xgafv: string, V1 error format.
2390 Allowed values
2391 1 - v1 error format
2392 2 - v2 error format
2393
2394Returns:
2395 An object of the form:
2396
2397 { # Response message for `ListServices` method.
2398 "nextPageToken": "A String", # Token that can be passed to `ListServices` to resume a paginated query.
2399 "services": [ # The results of the query.
2400 { # The full representation of a Service that is managed by
2401 # Google Service Management.
2402 "serviceName": "A String", # The name of the service. See the [overview](/service-management/overview)
2403 # for naming requirements.
2404 "producerProjectId": "A String", # ID of the project that produces and owns this service.
2405 },
2406 ],
2407 }</pre>
2408</div>
2409
2410<div class="method">
2411 <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
2412 <pre>Retrieves the next page of results.
2413
2414Args:
2415 previous_request: The request for the previous page. (required)
2416 previous_response: The response from the request for the previous page. (required)
2417
2418Returns:
2419 A request object that you can call 'execute()' on to request the next
2420 page. Returns None if there are no more items in the collection.
2421 </pre>
2422</div>
2423
2424<div class="method">
2425 <code class="details" id="setIamPolicy">setIamPolicy(resource=None, body, x__xgafv=None)</code>
2426 <pre>Sets the access control policy on the specified resource. Replaces any
2427existing policy.
2428
2429Args:
2430 resource: string, REQUIRED: The resource for which the policy is being specified.
2431`resource` is usually specified as a path. For example, a Project
2432resource is specified as `projects/{project}`. (required)
2433 body: object, The request body. (required)
2434 The object takes the form of:
2435
2436{ # Request message for `SetIamPolicy` method.
2437 "policy": { # Defines an Identity and Access Management (IAM) policy. It is used to # REQUIRED: The complete policy to be applied to the `resource`. The size of
2438 # the policy is limited to a few 10s of KB. An empty policy is a
2439 # valid policy but certain Cloud Platform services (such as Projects)
2440 # might reject them.
2441 # specify access control policies for Cloud Platform resources.
2442 #
2443 #
2444 # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
2445 # `members` to a `role`, where the members can be user accounts, Google groups,
2446 # Google domains, and service accounts. A `role` is a named list of permissions
2447 # defined by IAM.
2448 #
2449 # **Example**
2450 #
2451 # {
2452 # "bindings": [
2453 # {
2454 # "role": "roles/owner",
2455 # "members": [
2456 # "user:mike@example.com",
2457 # "group:admins@example.com",
2458 # "domain:google.com",
2459 # "serviceAccount:my-other-app@appspot.gserviceaccount.com",
2460 # ]
2461 # },
2462 # {
2463 # "role": "roles/viewer",
2464 # "members": ["user:sean@example.com"]
2465 # }
2466 # ]
2467 # }
2468 #
2469 # For a description of IAM and its features, see the
2470 # [IAM developer's guide](https://cloud.google.com/iam).
2471 "auditConfigs": [ # Specifies audit logging configs for "data access".
2472 # "data access": generally refers to data reads/writes and admin reads.
2473 # "admin activity": generally refers to admin writes.
2474 #
2475 # Note: `AuditConfig` doesn't apply to "admin activity", which always
2476 # enables audit logging.
2477 { # Enables "data access" audit logging for a service and specifies a list
2478 # of members that are log-exempted.
2479 "exemptedMembers": [ # Specifies the identities that are exempted from "data access" audit
2480 # logging for the `service` specified above.
2481 # Follows the same format of Binding.members.
2482 "A String",
2483 ],
2484 "service": "A String", # Specifies a service that will be enabled for "data access" audit
2485 # logging.
2486 # For example, `resourcemanager`, `storage`, `compute`.
2487 # `allServices` is a special value that covers all services.
2488 },
2489 ],
2490 "rules": [ # If more than one rule is specified, the rules are applied in the following
2491 # manner:
2492 # - All matching LOG rules are always applied.
2493 # - If any DENY/DENY_WITH_LOG rule matches, permission is denied.
2494 # Logging will be applied if one or more matching rule requires logging.
2495 # - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
2496 # granted.
2497 # Logging will be applied if one or more matching rule requires logging.
2498 # - Otherwise, if no rule applies, permission is denied.
2499 { # A rule to be applied in a Policy.
2500 "notIn": [ # If one or more 'not_in' clauses are specified, the rule matches
2501 # if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
2502 # The format for in and not_in entries is the same as for members in a
2503 # Binding (see google/iam/v1/policy.proto).
2504 "A String",
2505 ],
2506 "description": "A String", # Human-readable description of the rule.
2507 "in": [ # If one or more 'in' clauses are specified, the rule matches if
2508 # the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
2509 "A String",
2510 ],
2511 "action": "A String", # Required
2512 "conditions": [ # Additional restrictions that must be met
2513 { # A condition to be met.
2514 "iam": "A String", # Trusted attributes supplied by the IAM system.
2515 "svc": "A String", # Trusted attributes discharged by the service.
2516 "value": "A String", # DEPRECATED. Use 'values' instead.
2517 "sys": "A String", # Trusted attributes supplied by any service that owns resources and uses
2518 # the IAM system for access control.
2519 "values": [ # The objects of the condition. This is mutually exclusive with 'value'.
2520 "A String",
2521 ],
2522 "op": "A String", # An operator to apply the subject with.
2523 },
2524 ],
2525 "logConfig": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
2526 # that match the LOG action.
2527 { # Specifies what kind of log the caller must write
2528 # Increment a streamz counter with the specified metric and field names.
2529 #
2530 # Metric names should start with a '/', generally be lowercase-only,
2531 # and end in "_count". Field names should not contain an initial slash.
2532 # The actual exported metric names will have "/iam/policy" prepended.
2533 #
2534 # Field names correspond to IAM request parameters and field values are
2535 # their respective values.
2536 #
2537 # At present the only supported field names are
2538 # - "iam_principal", corresponding to IAMContext.principal;
2539 # - "" (empty string), resulting in one aggretated counter with no field.
2540 #
2541 # Examples:
2542 # counter { metric: "/debug_access_count" field: "iam_principal" }
2543 # ==> increment counter /iam/policy/backend_debug_access_count
2544 # {iam_principal=[value of IAMContext.principal]}
2545 #
2546 # At this time we do not support:
2547 # * multiple field names (though this may be supported in the future)
2548 # * decrementing the counter
2549 # * incrementing it by anything other than 1
2550 "counter": { # Options for counters # Counter options.
2551 "field": "A String", # The field value to attribute.
2552 "metric": "A String", # The metric to update.
2553 },
2554 "dataAccess": { # Write a Data Access (Gin) log # Data access options.
2555 },
2556 "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
2557 },
2558 },
2559 ],
2560 "permissions": [ # A permission is a string of form '<service>.<resource type>.<verb>'
2561 # (e.g., 'storage.buckets.list'). A value of '*' matches all permissions,
2562 # and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
2563 "A String",
2564 ],
2565 },
2566 ],
2567 "version": 42, # Version of the `Policy`. The default version is 0.
2568 "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
2569 # prevent simultaneous updates of a policy from overwriting each other.
2570 # It is strongly suggested that systems make use of the `etag` in the
2571 # read-modify-write cycle to perform policy updates in order to avoid race
2572 # conditions: An `etag` is returned in the response to `getIamPolicy`, and
2573 # systems are expected to put that etag in the request to `setIamPolicy` to
2574 # ensure that their change will be applied to the same version of the policy.
2575 #
2576 # If no `etag` is provided in the call to `setIamPolicy`, then the existing
2577 # policy is overwritten blindly.
2578 "bindings": [ # Associates a list of `members` to a `role`.
2579 # Multiple `bindings` must not be specified for the same `role`.
2580 # `bindings` with no members will result in an error.
2581 { # Associates `members` with a `role`.
2582 "role": "A String", # Role that is assigned to `members`.
2583 # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
2584 # Required
2585 "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
2586 # `members` can have the following values:
2587 #
2588 # * `allUsers`: A special identifier that represents anyone who is
2589 # on the internet; with or without a Google account.
2590 #
2591 # * `allAuthenticatedUsers`: A special identifier that represents anyone
2592 # who is authenticated with a Google account or a service account.
2593 #
2594 # * `user:{emailid}`: An email address that represents a specific Google
2595 # account. For example, `alice@gmail.com` or `joe@example.com`.
2596 #
Sai Cheemalapatidf613972016-10-21 13:59:49 -07002597 #
Jon Wayne Parrott7d5badb2016-08-16 12:44:29 -07002598 # * `serviceAccount:{emailid}`: An email address that represents a service
2599 # account. For example, `my-other-app@appspot.gserviceaccount.com`.
2600 #
2601 # * `group:{emailid}`: An email address that represents a Google group.
2602 # For example, `admins@example.com`.
2603 #
2604 # * `domain:{domain}`: A Google Apps domain name that represents all the
2605 # users of that domain. For example, `google.com` or `example.com`.
2606 #
2607 "A String",
2608 ],
2609 },
2610 ],
2611 "iamOwned": True or False,
2612 },
2613 }
2614
2615 x__xgafv: string, V1 error format.
2616 Allowed values
2617 1 - v1 error format
2618 2 - v2 error format
2619
2620Returns:
2621 An object of the form:
2622
2623 { # Defines an Identity and Access Management (IAM) policy. It is used to
2624 # specify access control policies for Cloud Platform resources.
2625 #
2626 #
2627 # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
2628 # `members` to a `role`, where the members can be user accounts, Google groups,
2629 # Google domains, and service accounts. A `role` is a named list of permissions
2630 # defined by IAM.
2631 #
2632 # **Example**
2633 #
2634 # {
2635 # "bindings": [
2636 # {
2637 # "role": "roles/owner",
2638 # "members": [
2639 # "user:mike@example.com",
2640 # "group:admins@example.com",
2641 # "domain:google.com",
2642 # "serviceAccount:my-other-app@appspot.gserviceaccount.com",
2643 # ]
2644 # },
2645 # {
2646 # "role": "roles/viewer",
2647 # "members": ["user:sean@example.com"]
2648 # }
2649 # ]
2650 # }
2651 #
2652 # For a description of IAM and its features, see the
2653 # [IAM developer's guide](https://cloud.google.com/iam).
2654 "auditConfigs": [ # Specifies audit logging configs for "data access".
2655 # "data access": generally refers to data reads/writes and admin reads.
2656 # "admin activity": generally refers to admin writes.
2657 #
2658 # Note: `AuditConfig` doesn't apply to "admin activity", which always
2659 # enables audit logging.
2660 { # Enables "data access" audit logging for a service and specifies a list
2661 # of members that are log-exempted.
2662 "exemptedMembers": [ # Specifies the identities that are exempted from "data access" audit
2663 # logging for the `service` specified above.
2664 # Follows the same format of Binding.members.
2665 "A String",
2666 ],
2667 "service": "A String", # Specifies a service that will be enabled for "data access" audit
2668 # logging.
2669 # For example, `resourcemanager`, `storage`, `compute`.
2670 # `allServices` is a special value that covers all services.
2671 },
2672 ],
2673 "rules": [ # If more than one rule is specified, the rules are applied in the following
2674 # manner:
2675 # - All matching LOG rules are always applied.
2676 # - If any DENY/DENY_WITH_LOG rule matches, permission is denied.
2677 # Logging will be applied if one or more matching rule requires logging.
2678 # - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
2679 # granted.
2680 # Logging will be applied if one or more matching rule requires logging.
2681 # - Otherwise, if no rule applies, permission is denied.
2682 { # A rule to be applied in a Policy.
2683 "notIn": [ # If one or more 'not_in' clauses are specified, the rule matches
2684 # if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
2685 # The format for in and not_in entries is the same as for members in a
2686 # Binding (see google/iam/v1/policy.proto).
2687 "A String",
2688 ],
2689 "description": "A String", # Human-readable description of the rule.
2690 "in": [ # If one or more 'in' clauses are specified, the rule matches if
2691 # the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
2692 "A String",
2693 ],
2694 "action": "A String", # Required
2695 "conditions": [ # Additional restrictions that must be met
2696 { # A condition to be met.
2697 "iam": "A String", # Trusted attributes supplied by the IAM system.
2698 "svc": "A String", # Trusted attributes discharged by the service.
2699 "value": "A String", # DEPRECATED. Use 'values' instead.
2700 "sys": "A String", # Trusted attributes supplied by any service that owns resources and uses
2701 # the IAM system for access control.
2702 "values": [ # The objects of the condition. This is mutually exclusive with 'value'.
2703 "A String",
2704 ],
2705 "op": "A String", # An operator to apply the subject with.
2706 },
2707 ],
2708 "logConfig": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
2709 # that match the LOG action.
2710 { # Specifies what kind of log the caller must write
2711 # Increment a streamz counter with the specified metric and field names.
2712 #
2713 # Metric names should start with a '/', generally be lowercase-only,
2714 # and end in "_count". Field names should not contain an initial slash.
2715 # The actual exported metric names will have "/iam/policy" prepended.
2716 #
2717 # Field names correspond to IAM request parameters and field values are
2718 # their respective values.
2719 #
2720 # At present the only supported field names are
2721 # - "iam_principal", corresponding to IAMContext.principal;
2722 # - "" (empty string), resulting in one aggretated counter with no field.
2723 #
2724 # Examples:
2725 # counter { metric: "/debug_access_count" field: "iam_principal" }
2726 # ==> increment counter /iam/policy/backend_debug_access_count
2727 # {iam_principal=[value of IAMContext.principal]}
2728 #
2729 # At this time we do not support:
2730 # * multiple field names (though this may be supported in the future)
2731 # * decrementing the counter
2732 # * incrementing it by anything other than 1
2733 "counter": { # Options for counters # Counter options.
2734 "field": "A String", # The field value to attribute.
2735 "metric": "A String", # The metric to update.
2736 },
2737 "dataAccess": { # Write a Data Access (Gin) log # Data access options.
2738 },
2739 "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
2740 },
2741 },
2742 ],
2743 "permissions": [ # A permission is a string of form '<service>.<resource type>.<verb>'
2744 # (e.g., 'storage.buckets.list'). A value of '*' matches all permissions,
2745 # and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
2746 "A String",
2747 ],
2748 },
2749 ],
2750 "version": 42, # Version of the `Policy`. The default version is 0.
2751 "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
2752 # prevent simultaneous updates of a policy from overwriting each other.
2753 # It is strongly suggested that systems make use of the `etag` in the
2754 # read-modify-write cycle to perform policy updates in order to avoid race
2755 # conditions: An `etag` is returned in the response to `getIamPolicy`, and
2756 # systems are expected to put that etag in the request to `setIamPolicy` to
2757 # ensure that their change will be applied to the same version of the policy.
2758 #
2759 # If no `etag` is provided in the call to `setIamPolicy`, then the existing
2760 # policy is overwritten blindly.
2761 "bindings": [ # Associates a list of `members` to a `role`.
2762 # Multiple `bindings` must not be specified for the same `role`.
2763 # `bindings` with no members will result in an error.
2764 { # Associates `members` with a `role`.
2765 "role": "A String", # Role that is assigned to `members`.
2766 # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
2767 # Required
2768 "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
2769 # `members` can have the following values:
2770 #
2771 # * `allUsers`: A special identifier that represents anyone who is
2772 # on the internet; with or without a Google account.
2773 #
2774 # * `allAuthenticatedUsers`: A special identifier that represents anyone
2775 # who is authenticated with a Google account or a service account.
2776 #
2777 # * `user:{emailid}`: An email address that represents a specific Google
2778 # account. For example, `alice@gmail.com` or `joe@example.com`.
2779 #
Sai Cheemalapatidf613972016-10-21 13:59:49 -07002780 #
Jon Wayne Parrott7d5badb2016-08-16 12:44:29 -07002781 # * `serviceAccount:{emailid}`: An email address that represents a service
2782 # account. For example, `my-other-app@appspot.gserviceaccount.com`.
2783 #
2784 # * `group:{emailid}`: An email address that represents a Google group.
2785 # For example, `admins@example.com`.
2786 #
2787 # * `domain:{domain}`: A Google Apps domain name that represents all the
2788 # users of that domain. For example, `google.com` or `example.com`.
2789 #
2790 "A String",
2791 ],
2792 },
2793 ],
2794 "iamOwned": True or False,
2795 }</pre>
2796</div>
2797
2798<div class="method">
2799 <code class="details" id="testIamPermissions">testIamPermissions(resource=None, body, x__xgafv=None)</code>
2800 <pre>Returns permissions that a caller has on the specified resource.
2801
2802Args:
2803 resource: string, REQUIRED: The resource for which the policy detail is being requested.
2804`resource` is usually specified as a path. For example, a Project
2805resource is specified as `projects/{project}`. (required)
2806 body: object, The request body. (required)
2807 The object takes the form of:
2808
2809{ # Request message for `TestIamPermissions` method.
2810 "permissions": [ # The set of permissions to check for the `resource`. Permissions with
2811 # wildcards (such as '*' or 'storage.*') are not allowed. For more
2812 # information see
2813 # [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
2814 "A String",
2815 ],
2816 }
2817
2818 x__xgafv: string, V1 error format.
2819 Allowed values
2820 1 - v1 error format
2821 2 - v2 error format
2822
2823Returns:
2824 An object of the form:
2825
2826 { # Response message for `TestIamPermissions` method.
2827 "permissions": [ # A subset of `TestPermissionsRequest.permissions` that the caller is
2828 # allowed.
2829 "A String",
2830 ],
2831 }</pre>
2832</div>
2833
2834<div class="method">
2835 <code class="details" id="undelete">undelete(serviceName=None, x__xgafv=None)</code>
2836 <pre>Revives a previously deleted managed service. The method restores the
2837service using the configuration at the time the service was deleted.
2838The target service must exist and must have been deleted within the
2839last 30 days.
2840
2841Operation<response: UndeleteServiceResponse>
2842
2843Args:
2844 serviceName: string, The name of the service. See the [overview](/service-management/overview)
2845for naming requirements. For example: `example.googleapis.com`. (required)
2846 x__xgafv: string, V1 error format.
2847 Allowed values
2848 1 - v1 error format
2849 2 - v2 error format
2850
2851Returns:
2852 An object of the form:
2853
2854 { # This resource represents a long-running operation that is the result of a
2855 # network API call.
2856 "metadata": { # Service-specific metadata associated with the operation. It typically
2857 # contains progress information and common metadata such as create time.
2858 # Some services might not provide such metadata. Any method that returns a
2859 # long-running operation should document the metadata type, if any.
2860 "a_key": "", # Properties of the object. Contains field @type with type URL.
2861 },
2862 "done": True or False, # If the value is `false`, it means the operation is still in progress.
2863 # If true, the operation is completed, and either `error` or `response` is
2864 # available.
2865 "response": { # The normal response of the operation in case of success. If the original
2866 # method returns no data on success, such as `Delete`, the response is
2867 # `google.protobuf.Empty`. If the original method is standard
2868 # `Get`/`Create`/`Update`, the response should be the resource. For other
2869 # methods, the response should have the type `XxxResponse`, where `Xxx`
2870 # is the original method name. For example, if the original method name
2871 # is `TakeSnapshot()`, the inferred response type is
2872 # `TakeSnapshotResponse`.
2873 "a_key": "", # Properties of the object. Contains field @type with type URL.
2874 },
2875 "name": "A String", # The server-assigned name, which is only unique within the same service that
2876 # originally returns it. If you use the default HTTP mapping, the
2877 # `name` should have the format of `operations/some/unique/name`.
Sai Cheemalapatidf613972016-10-21 13:59:49 -07002878 "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
Jon Wayne Parrott7d5badb2016-08-16 12:44:29 -07002879 # programming environments, including REST APIs and RPC APIs. It is used by
2880 # [gRPC](https://github.com/grpc). The error model is designed to be:
2881 #
2882 # - Simple to use and understand for most users
2883 # - Flexible enough to meet unexpected needs
2884 #
2885 # # Overview
2886 #
2887 # The `Status` message contains three pieces of data: error code, error message,
2888 # and error details. The error code should be an enum value of
2889 # google.rpc.Code, but it may accept additional error codes if needed. The
2890 # error message should be a developer-facing English message that helps
2891 # developers *understand* and *resolve* the error. If a localized user-facing
2892 # error message is needed, put the localized message in the error details or
2893 # localize it in the client. The optional error details may contain arbitrary
2894 # information about the error. There is a predefined set of error detail types
2895 # in the package `google.rpc` which can be used for common error conditions.
2896 #
2897 # # Language mapping
2898 #
2899 # The `Status` message is the logical representation of the error model, but it
2900 # is not necessarily the actual wire format. When the `Status` message is
2901 # exposed in different client libraries and different wire protocols, it can be
2902 # mapped differently. For example, it will likely be mapped to some exceptions
2903 # in Java, but more likely mapped to some error codes in C.
2904 #
2905 # # Other uses
2906 #
2907 # The error model and the `Status` message can be used in a variety of
2908 # environments, either with or without APIs, to provide a
2909 # consistent developer experience across different environments.
2910 #
2911 # Example uses of this error model include:
2912 #
2913 # - Partial errors. If a service needs to return partial errors to the client,
2914 # it may embed the `Status` in the normal response to indicate the partial
2915 # errors.
2916 #
2917 # - Workflow errors. A typical workflow has multiple steps. Each step may
2918 # have a `Status` message for error reporting purpose.
2919 #
2920 # - Batch operations. If a client uses batch request and batch response, the
2921 # `Status` message should be used directly inside batch response, one for
2922 # each error sub-response.
2923 #
2924 # - Asynchronous operations. If an API call embeds asynchronous operation
2925 # results in its response, the status of those operations should be
2926 # represented directly using the `Status` message.
2927 #
2928 # - Logging. If some API errors are stored in logs, the message `Status` could
2929 # be used directly after any stripping needed for security/privacy reasons.
2930 "message": "A String", # A developer-facing error message, which should be in English. Any
2931 # user-facing error message should be localized and sent in the
2932 # google.rpc.Status.details field, or localized by the client.
2933 "code": 42, # The status code, which should be an enum value of google.rpc.Code.
2934 "details": [ # A list of messages that carry the error details. There will be a
2935 # common set of message types for APIs to use.
2936 {
2937 "a_key": "", # Properties of the object. Contains field @type with type URL.
2938 },
2939 ],
2940 },
2941 }</pre>
2942</div>
2943
2944</body></html>