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