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