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