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