blob: a4d50657692a75f3444f4c36523ae020eb29930d [file] [log] [blame]
Bu Sun Kim715bd7f2019-06-14 16:50:42 -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="serviceusage_v1.html">Service Usage API</a> . <a href="serviceusage_v1.services.html">services</a></h1>
76<h2>Instance Methods</h2>
77<p class="toc_element">
Dan O'Mearadd494642020-05-01 07:42:23 -070078 <code><a href="#batchEnable">batchEnable(parent, body=None, x__xgafv=None)</a></code></p>
Bu Sun Kim715bd7f2019-06-14 16:50:42 -070079<p class="firstline">Enable multiple services on a project. The operation is atomic: if enabling</p>
80<p class="toc_element">
Dan O'Mearadd494642020-05-01 07:42:23 -070081 <code><a href="#batchGet">batchGet(parent, names=None, x__xgafv=None)</a></code></p>
82<p class="firstline">Returns the service configurations and enabled states for a given list of</p>
83<p class="toc_element">
84 <code><a href="#disable">disable(name, body=None, x__xgafv=None)</a></code></p>
Bu Sun Kim715bd7f2019-06-14 16:50:42 -070085<p class="firstline">Disable a service so that it can no longer be used with a project.</p>
86<p class="toc_element">
87 <code><a href="#enable">enable(name, body=None, x__xgafv=None)</a></code></p>
88<p class="firstline">Enable a service so that it can be used with a project.</p>
89<p class="toc_element">
90 <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
91<p class="firstline">Returns the service configuration and enabled state for a given service.</p>
92<p class="toc_element">
Dan O'Mearadd494642020-05-01 07:42:23 -070093 <code><a href="#list">list(parent, pageToken=None, x__xgafv=None, pageSize=None, filter=None)</a></code></p>
Bu Sun Kim715bd7f2019-06-14 16:50:42 -070094<p class="firstline">List all services available to the specified project, and the current</p>
95<p class="toc_element">
96 <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
97<p class="firstline">Retrieves the next page of results.</p>
98<h3>Method Details</h3>
99<div class="method">
Dan O'Mearadd494642020-05-01 07:42:23 -0700100 <code class="details" id="batchEnable">batchEnable(parent, body=None, x__xgafv=None)</code>
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700101 <pre>Enable multiple services on a project. The operation is atomic: if enabling
102any service fails, then the entire batch fails, and no state changes occur.
Dan O'Mearadd494642020-05-01 07:42:23 -0700103To enable a single service, use the `EnableService` method instead.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700104
105Args:
106 parent: string, Parent to enable services on.
107
108An example name would be:
109`projects/123` where `123` is the project number.
110
111The `BatchEnableServices` method currently only supports projects. (required)
Dan O'Mearadd494642020-05-01 07:42:23 -0700112 body: object, The request body.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700113 The object takes the form of:
114
115{ # Request message for the `BatchEnableServices` method.
116 "serviceIds": [ # The identifiers of the services to enable on the project.
117 #
118 # A valid identifier would be:
119 # serviceusage.googleapis.com
120 #
121 # Enabling services requires that each service is public or is shared with
122 # the user enabling the service.
123 #
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700124 # A single request can enable a maximum of 20 services at a time. If more
125 # than 20 services are specified, the request will fail, and no state changes
126 # will occur.
127 "A String",
128 ],
129 }
130
131 x__xgafv: string, V1 error format.
132 Allowed values
133 1 - v1 error format
134 2 - v2 error format
135
136Returns:
137 An object of the form:
138
139 { # This resource represents a long-running operation that is the result of a
140 # network API call.
Dan O'Mearadd494642020-05-01 07:42:23 -0700141 "response": { # The normal response of the operation in case of success. If the original
142 # method returns no data on success, such as `Delete`, the response is
143 # `google.protobuf.Empty`. If the original method is standard
144 # `Get`/`Create`/`Update`, the response should be the resource. For other
145 # methods, the response should have the type `XxxResponse`, where `Xxx`
146 # is the original method name. For example, if the original method name
147 # is `TakeSnapshot()`, the inferred response type is
148 # `TakeSnapshotResponse`.
149 "a_key": "", # Properties of the object. Contains field @type with type URL.
150 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700151 "metadata": { # Service-specific metadata associated with the operation. It typically
152 # contains progress information and common metadata such as create time.
153 # Some services might not provide such metadata. Any method that returns a
154 # long-running operation should document the metadata type, if any.
155 "a_key": "", # Properties of the object. Contains field @type with type URL.
156 },
Dan O'Mearadd494642020-05-01 07:42:23 -0700157 "done": True or False, # If the value is `false`, it means the operation is still in progress.
158 # If `true`, the operation is completed, and either `error` or `response` is
159 # available.
160 "name": "A String", # The server-assigned name, which is only unique within the same service that
161 # originally returns it. If you use the default HTTP mapping, the
162 # `name` should be a resource name ending with `operations/{unique_id}`.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700163 "error": { # The `Status` type defines a logical error model that is suitable for # The error result of the operation in case of failure or cancellation.
164 # different programming environments, including REST APIs and RPC APIs. It is
165 # used by [gRPC](https://github.com/grpc). Each `Status` message contains
166 # three pieces of data: error code, error message, and error details.
167 #
168 # You can find out more about this error model and how to work with it in the
169 # [API Design Guide](https://cloud.google.com/apis/design/errors).
170 "message": "A String", # A developer-facing error message, which should be in English. Any
171 # user-facing error message should be localized and sent in the
172 # google.rpc.Status.details field, or localized by the client.
173 "code": 42, # The status code, which should be an enum value of google.rpc.Code.
174 "details": [ # A list of messages that carry the error details. There is a common set of
175 # message types for APIs to use.
176 {
177 "a_key": "", # Properties of the object. Contains field @type with type URL.
178 },
179 ],
180 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700181 }</pre>
182</div>
183
184<div class="method">
Dan O'Mearadd494642020-05-01 07:42:23 -0700185 <code class="details" id="batchGet">batchGet(parent, names=None, x__xgafv=None)</code>
186 <pre>Returns the service configurations and enabled states for a given list of
187services.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700188
189Args:
Dan O'Mearadd494642020-05-01 07:42:23 -0700190 parent: string, Parent to retrieve services from.
191If this is set, the parent of all of the services specified in `names` must
192match this field. An example name would be: `projects/123` where `123` is
193the project number. The `BatchGetServices` method currently only supports
194projects. (required)
195 names: string, Names of the services to retrieve.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700196
197An example name would be:
198`projects/123/services/serviceusage.googleapis.com` where `123` is the
Dan O'Mearadd494642020-05-01 07:42:23 -0700199project number.
200A single request can get a maximum of 20 services at a time. (repeated)
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700201 x__xgafv: string, V1 error format.
202 Allowed values
203 1 - v1 error format
204 2 - v2 error format
205
206Returns:
207 An object of the form:
208
Dan O'Mearadd494642020-05-01 07:42:23 -0700209 { # Response message for the `BatchGetServices` method.
210 "services": [ # The requested Service states.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700211 { # A service that is available for use by the consumer.
212 "state": "A String", # Whether or not the service has been enabled for use by the consumer.
213 "config": { # The configuration of the service. # The service configuration of the available service.
214 # Some fields may be filtered out of the configuration in responses to
215 # the `ListServices` method. These fields are present only in responses to
216 # the `GetService` method.
217 "name": "A String", # The DNS address at which this service is available.
218 #
219 # An example DNS address would be:
220 # `calendar.googleapis.com`.
221 "title": "A String", # The product title for this service.
222 "documentation": { # `Documentation` provides the information for describing a service. # Additional API documentation. Contains only the summary and the
223 # documentation URL.
224 #
225 # Example:
Dan O'Mearadd494642020-05-01 07:42:23 -0700226 # &lt;pre&gt;&lt;code&gt;documentation:
227 # summary: &gt;
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700228 # The Google Calendar API gives access
229 # to most calendar features.
230 # pages:
231 # - name: Overview
Dan O'Mearadd494642020-05-01 07:42:23 -0700232 # content: &amp;#40;== include google/foo/overview.md ==&amp;#41;
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700233 # - name: Tutorial
Dan O'Mearadd494642020-05-01 07:42:23 -0700234 # content: &amp;#40;== include google/foo/tutorial.md ==&amp;#41;
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700235 # subpages;
236 # - name: Java
Dan O'Mearadd494642020-05-01 07:42:23 -0700237 # content: &amp;#40;== include google/foo/tutorial_java.md ==&amp;#41;
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700238 # rules:
239 # - selector: google.calendar.Calendar.Get
Dan O'Mearadd494642020-05-01 07:42:23 -0700240 # description: &gt;
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700241 # ...
242 # - selector: google.calendar.Calendar.Put
Dan O'Mearadd494642020-05-01 07:42:23 -0700243 # description: &gt;
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700244 # ...
Dan O'Mearadd494642020-05-01 07:42:23 -0700245 # &lt;/code&gt;&lt;/pre&gt;
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700246 # Documentation is provided in markdown syntax. In addition to
247 # standard markdown features, definition lists, tables and fenced
248 # code blocks are supported. Section headers can be provided and are
249 # interpreted relative to the section nesting of the context where
250 # a documentation fragment is embedded.
251 #
252 # Documentation from the IDL is merged with documentation defined
253 # via the config at normalization time, where documentation provided
254 # by config rules overrides IDL provided.
255 #
256 # A number of constructs specific to the API platform are supported
257 # in documentation text.
258 #
259 # In order to reference a proto element, the following
260 # notation can be used:
Dan O'Mearadd494642020-05-01 07:42:23 -0700261 # &lt;pre&gt;&lt;code&gt;&amp;#91;fully.qualified.proto.name]&amp;#91;]&lt;/code&gt;&lt;/pre&gt;
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700262 # To override the display text used for the link, this can be used:
Dan O'Mearadd494642020-05-01 07:42:23 -0700263 # &lt;pre&gt;&lt;code&gt;&amp;#91;display text]&amp;#91;fully.qualified.proto.name]&lt;/code&gt;&lt;/pre&gt;
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700264 # Text can be excluded from doc using the following notation:
Dan O'Mearadd494642020-05-01 07:42:23 -0700265 # &lt;pre&gt;&lt;code&gt;&amp;#40;-- internal comment --&amp;#41;&lt;/code&gt;&lt;/pre&gt;
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700266 #
267 # A few directives are available in documentation. Note that
268 # directives must appear on a single line to be properly
269 # identified. The `include` directive includes a markdown file from
270 # an external source:
Dan O'Mearadd494642020-05-01 07:42:23 -0700271 # &lt;pre&gt;&lt;code&gt;&amp;#40;== include path/to/file ==&amp;#41;&lt;/code&gt;&lt;/pre&gt;
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700272 # The `resource_for` directive marks a message to be the resource of
273 # a collection in REST view. If it is not specified, tools attempt
274 # to infer the resource from the operations in a collection:
Dan O'Mearadd494642020-05-01 07:42:23 -0700275 # &lt;pre&gt;&lt;code&gt;&amp;#40;== resource_for v1.shelves.books ==&amp;#41;&lt;/code&gt;&lt;/pre&gt;
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700276 # The directive `suppress_warning` does not directly affect documentation
277 # and is documented together with service config validation.
278 "rules": [ # A list of documentation rules that apply to individual API elements.
279 #
280 # **NOTE:** All service configuration rules follow "last one wins" order.
281 { # A documentation rule provides information about individual API elements.
282 "description": "A String", # Description of the selected API(s).
283 "deprecationDescription": "A String", # Deprecation description of the selected element(s). It can be provided if
284 # an element is marked as `deprecated`.
285 "selector": "A String", # The selector is a comma-separated list of patterns. Each pattern is a
286 # qualified name of the element which may end in "*", indicating a wildcard.
287 # Wildcards are only allowed at the end and for a whole component of the
288 # qualified name, i.e. "foo.*" is ok, but not "foo.b*" or "foo.*.bar". A
289 # wildcard will match one or more components. To specify a default for all
290 # applicable elements, the whole pattern "*" is used.
291 },
292 ],
293 "documentationRootUrl": "A String", # The URL to the root of documentation.
294 "summary": "A String", # A short summary of what the service does. Can only be provided by
295 # plain text.
Dan O'Mearadd494642020-05-01 07:42:23 -0700296 "serviceRootUrl": "A String", # Specifies the service root url if the default one (the service name
297 # from the yaml file) is not suitable. This can be seen in any fully
298 # specified service urls as well as sections that show a base that other
299 # urls are relative to.
300 "overview": "A String", # Declares a single overview page. For example:
301 # &lt;pre&gt;&lt;code&gt;documentation:
302 # summary: ...
303 # overview: &amp;#40;== include overview.md ==&amp;#41;
304 # &lt;/code&gt;&lt;/pre&gt;
305 # This is a shortcut for the following declaration (using pages style):
306 # &lt;pre&gt;&lt;code&gt;documentation:
307 # summary: ...
308 # pages:
309 # - name: Overview
310 # content: &amp;#40;== include overview.md ==&amp;#41;
311 # &lt;/code&gt;&lt;/pre&gt;
312 # Note: you cannot specify both `overview` field and `pages` field.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700313 "pages": [ # The top level pages for the documentation set.
314 { # Represents a documentation page. A page can contain subpages to represent
315 # nested documentation set structure.
Dan O'Mearadd494642020-05-01 07:42:23 -0700316 "content": "A String", # The Markdown content of the page. You can use &lt;code&gt;&amp;#40;== include {path}
317 # ==&amp;#41;&lt;/code&gt; to include content from a Markdown file.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700318 "subpages": [ # Subpages of this page. The order of subpages specified here will be
319 # honored in the generated docset.
320 # Object with schema name: Page
321 ],
322 "name": "A String", # The name of the page. It will be used as an identity of the page to
323 # generate URI of the page, text of the link to this page in navigation,
324 # etc. The full page name (start from the root page name to this page
325 # concatenated with `.`) can be used as reference to the page in your
326 # documentation. For example:
Dan O'Mearadd494642020-05-01 07:42:23 -0700327 # &lt;pre&gt;&lt;code&gt;pages:
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700328 # - name: Tutorial
Dan O'Mearadd494642020-05-01 07:42:23 -0700329 # content: &amp;#40;== include tutorial.md ==&amp;#41;
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700330 # subpages:
331 # - name: Java
Dan O'Mearadd494642020-05-01 07:42:23 -0700332 # content: &amp;#40;== include tutorial_java.md ==&amp;#41;
333 # &lt;/code&gt;&lt;/pre&gt;
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700334 # You can reference `Java` page using Markdown reference link syntax:
335 # `Java`.
336 },
337 ],
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700338 },
339 "quota": { # Quota configuration helps to achieve fairness and budgeting in service # Quota configuration.
340 # usage.
341 #
342 # The metric based quota configuration works this way:
343 # - The service configuration defines a set of metrics.
344 # - For API calls, the quota.metric_rules maps methods to metrics with
345 # corresponding costs.
346 # - The quota.limits defines limits on the metrics, which will be used for
347 # quota checks at runtime.
348 #
349 # An example quota configuration in yaml format:
350 #
351 # quota:
352 # limits:
353 #
354 # - name: apiWriteQpsPerProject
355 # metric: library.googleapis.com/write_calls
356 # unit: "1/min/{project}" # rate limit for consumer projects
357 # values:
358 # STANDARD: 10000
359 #
360 #
361 # # The metric rules bind all methods to the read_calls metric,
362 # # except for the UpdateBook and DeleteBook methods. These two methods
363 # # are mapped to the write_calls metric, with the UpdateBook method
364 # # consuming at twice rate as the DeleteBook method.
365 # metric_rules:
366 # - selector: "*"
367 # metric_costs:
368 # library.googleapis.com/read_calls: 1
369 # - selector: google.example.library.v1.LibraryService.UpdateBook
370 # metric_costs:
371 # library.googleapis.com/write_calls: 2
372 # - selector: google.example.library.v1.LibraryService.DeleteBook
373 # metric_costs:
374 # library.googleapis.com/write_calls: 1
375 #
376 # Corresponding Metric definition:
377 #
378 # metrics:
379 # - name: library.googleapis.com/read_calls
380 # display_name: Read requests
381 # metric_kind: DELTA
382 # value_type: INT64
383 #
384 # - name: library.googleapis.com/write_calls
385 # display_name: Write requests
386 # metric_kind: DELTA
387 # value_type: INT64
388 #
389 "metricRules": [ # List of `MetricRule` definitions, each one mapping a selected method to one
390 # or more metrics.
391 { # Bind API methods to metrics. Binding a method to a metric causes that
392 # metric's configured quota behaviors to apply to the method call.
393 "metricCosts": { # Metrics to update when the selected methods are called, and the associated
394 # cost applied to each metric.
395 #
396 # The key of the map is the metric name, and the values are the amount
397 # increased for the metric against which the quota limits are defined.
398 # The value must not be negative.
399 "a_key": "A String",
400 },
401 "selector": "A String", # Selects the methods to which this rule applies.
402 #
403 # Refer to selector for syntax details.
404 },
405 ],
406 "limits": [ # List of `QuotaLimit` definitions for the service.
407 { # `QuotaLimit` defines a specific limit that applies over a specified duration
408 # for a limit type. There can be at most one limit for a duration and limit
409 # type combination defined within a `QuotaGroup`.
410 "displayName": "A String", # User-visible display name for this limit.
411 # Optional. If not set, the UI will provide a default display name based on
412 # the quota configuration. This field can be used to override the default
413 # display name generated from the configuration.
Dan O'Mearadd494642020-05-01 07:42:23 -0700414 "description": "A String", # Optional. User-visible, extended description for this quota limit.
415 # Should be used only when more context is needed to understand this limit
416 # than provided by the limit's display name (see: `display_name`).
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700417 "defaultLimit": "A String", # Default number of tokens that can be consumed during the specified
418 # duration. This is the number of tokens assigned when a client
419 # application developer activates the service for his/her project.
420 #
421 # Specifying a value of 0 will block all requests. This can be used if you
422 # are provisioning quota to selected consumers and blocking others.
423 # Similarly, a value of -1 will indicate an unlimited quota. No other
424 # negative values are allowed.
425 #
426 # Used by group-based quotas only.
427 "metric": "A String", # The name of the metric this quota limit applies to. The quota limits with
428 # the same metric will be checked together during runtime. The metric must be
429 # defined within the service config.
430 "values": { # Tiered limit values. You must specify this as a key:value pair, with an
431 # integer value that is the maximum number of requests allowed for the
432 # specified unit. Currently only STANDARD is supported.
433 "a_key": "A String",
434 },
435 "maxLimit": "A String", # Maximum number of tokens that can be consumed during the specified
436 # duration. Client application developers can override the default limit up
437 # to this maximum. If specified, this value cannot be set to a value less
438 # than the default limit. If not specified, it is set to the default limit.
439 #
440 # To allow clients to apply overrides with no upper bound, set this to -1,
441 # indicating unlimited maximum quota.
442 #
443 # Used by group-based quotas only.
Dan O'Mearadd494642020-05-01 07:42:23 -0700444 "duration": "A String", # Duration of this limit in textual notation. Must be "100s" or "1d".
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700445 #
446 # Used by group-based quotas only.
447 "freeTier": "A String", # Free tier value displayed in the Developers Console for this limit.
448 # The free tier is the number of tokens that will be subtracted from the
449 # billed amount when billing is enabled.
450 # This field can only be set on a limit with duration "1d", in a billable
451 # group; it is invalid on any other limit. If this field is not set, it
452 # defaults to 0, indicating that there is no free tier for this service.
453 #
454 # Used by group-based quotas only.
455 "unit": "A String", # Specify the unit of the quota limit. It uses the same syntax as
456 # Metric.unit. The supported unit kinds are determined by the quota
457 # backend system.
458 #
459 # Here are some examples:
460 # * "1/min/{project}" for quota per minute per project.
461 #
462 # Note: the order of unit components is insignificant.
463 # The "1" at the beginning is required to follow the metric unit syntax.
Dan O'Mearadd494642020-05-01 07:42:23 -0700464 "name": "A String", # Name of the quota limit.
465 #
466 # The name must be provided, and it must be unique within the service. The
467 # name can only include alphanumeric characters as well as '-'.
468 #
469 # The maximum length of the limit name is 64 characters.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700470 },
471 ],
472 },
473 "apis": [ # A list of API interfaces exported by this service. Contains only the names,
474 # versions, and method names of the interfaces.
475 { # Api is a light-weight descriptor for an API Interface.
476 #
477 # Interfaces are also described as "protocol buffer services" in some contexts,
478 # such as by the "service" keyword in a .proto file, but they are different
479 # from API Services, which represent a concrete implementation of an interface
480 # as opposed to simply a description of methods and bindings. They are also
481 # sometimes simply referred to as "APIs" in other contexts, such as the name of
482 # this message itself. See https://cloud.google.com/apis/design/glossary for
483 # detailed terminology.
484 "name": "A String", # The fully qualified name of this interface, including package name
485 # followed by the interface's simple name.
486 "sourceContext": { # `SourceContext` represents information about the source of a # Source context for the protocol buffer service represented by this
487 # message.
488 # protobuf element, like the file in which it is defined.
489 "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
490 # protobuf element. For example: `"google/protobuf/source_context.proto"`.
491 },
492 "mixins": [ # Included interfaces. See Mixin.
493 { # Declares an API Interface to be included in this interface. The including
494 # interface must redeclare all the methods from the included interface, but
495 # documentation and options are inherited as follows:
496 #
497 # - If after comment and whitespace stripping, the documentation
498 # string of the redeclared method is empty, it will be inherited
499 # from the original method.
500 #
501 # - Each annotation belonging to the service config (http,
502 # visibility) which is not set in the redeclared method will be
503 # inherited.
504 #
505 # - If an http annotation is inherited, the path pattern will be
506 # modified as follows. Any version prefix will be replaced by the
507 # version of the including interface plus the root path if
508 # specified.
509 #
510 # Example of a simple mixin:
511 #
512 # package google.acl.v1;
513 # service AccessControl {
514 # // Get the underlying ACL object.
515 # rpc GetAcl(GetAclRequest) returns (Acl) {
516 # option (google.api.http).get = "/v1/{resource=**}:getAcl";
517 # }
518 # }
519 #
520 # package google.storage.v2;
521 # service Storage {
522 # // rpc GetAcl(GetAclRequest) returns (Acl);
523 #
524 # // Get a data record.
525 # rpc GetData(GetDataRequest) returns (Data) {
526 # option (google.api.http).get = "/v2/{resource=**}";
527 # }
528 # }
529 #
530 # Example of a mixin configuration:
531 #
532 # apis:
533 # - name: google.storage.v2.Storage
534 # mixins:
535 # - name: google.acl.v1.AccessControl
536 #
537 # The mixin construct implies that all methods in `AccessControl` are
538 # also declared with same name and request/response types in
539 # `Storage`. A documentation generator or annotation processor will
540 # see the effective `Storage.GetAcl` method after inherting
541 # documentation and annotations as follows:
542 #
543 # service Storage {
544 # // Get the underlying ACL object.
545 # rpc GetAcl(GetAclRequest) returns (Acl) {
546 # option (google.api.http).get = "/v2/{resource=**}:getAcl";
547 # }
548 # ...
549 # }
550 #
551 # Note how the version in the path pattern changed from `v1` to `v2`.
552 #
553 # If the `root` field in the mixin is specified, it should be a
554 # relative path under which inherited HTTP paths are placed. Example:
555 #
556 # apis:
557 # - name: google.storage.v2.Storage
558 # mixins:
559 # - name: google.acl.v1.AccessControl
560 # root: acls
561 #
562 # This implies the following inherited HTTP annotation:
563 #
564 # service Storage {
565 # // Get the underlying ACL object.
566 # rpc GetAcl(GetAclRequest) returns (Acl) {
567 # option (google.api.http).get = "/v2/acls/{resource=**}:getAcl";
568 # }
569 # ...
570 # }
571 "root": "A String", # If non-empty specifies a path under which inherited HTTP paths
572 # are rooted.
573 "name": "A String", # The fully qualified name of the interface which is included.
574 },
575 ],
576 "syntax": "A String", # The source syntax of the service.
577 "version": "A String", # A version string for this interface. If specified, must have the form
578 # `major-version.minor-version`, as in `1.10`. If the minor version is
579 # omitted, it defaults to zero. If the entire version field is empty, the
580 # major version is derived from the package name, as outlined below. If the
581 # field is not empty, the version in the package name will be verified to be
582 # consistent with what is provided here.
583 #
584 # The versioning schema uses [semantic
585 # versioning](http://semver.org) where the major version number
586 # indicates a breaking change and the minor version an additive,
587 # non-breaking change. Both version numbers are signals to users
588 # what to expect from different versions, and should be carefully
589 # chosen based on the product plan.
590 #
591 # The major version is also reflected in the package name of the
Dan O'Mearadd494642020-05-01 07:42:23 -0700592 # interface, which must end in `v&lt;major-version&gt;`, as in
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700593 # `google.feature.v1`. For major versions 0 and 1, the suffix can
594 # be omitted. Zero major versions must only be used for
595 # experimental, non-GA interfaces.
596 "options": [ # Any metadata attached to the interface.
597 { # A protocol buffer option, which can be attached to a message, field,
598 # enumeration, etc.
599 "name": "A String", # The option's name. For protobuf built-in options (options defined in
600 # descriptor.proto), this is the short name. For example, `"map_entry"`.
601 # For custom options, it should be the fully-qualified name. For example,
602 # `"google.api.http"`.
603 "value": { # The option's value packed in an Any message. If the value is a primitive,
604 # the corresponding wrapper type defined in google/protobuf/wrappers.proto
605 # should be used. If the value is an enum, it should be stored as an int32
606 # value using the google.protobuf.Int32Value type.
607 "a_key": "", # Properties of the object. Contains field @type with type URL.
608 },
609 },
610 ],
611 "methods": [ # The methods of this interface, in unspecified order.
612 { # Method represents a method of an API interface.
613 "name": "A String", # The simple name of this method.
614 "requestStreaming": True or False, # If true, the request is streamed.
615 "responseTypeUrl": "A String", # The URL of the output message type.
616 "requestTypeUrl": "A String", # A URL of the input message type.
617 "responseStreaming": True or False, # If true, the response is streamed.
618 "syntax": "A String", # The source syntax of this method.
619 "options": [ # Any metadata attached to the method.
620 { # A protocol buffer option, which can be attached to a message, field,
621 # enumeration, etc.
622 "name": "A String", # The option's name. For protobuf built-in options (options defined in
623 # descriptor.proto), this is the short name. For example, `"map_entry"`.
624 # For custom options, it should be the fully-qualified name. For example,
625 # `"google.api.http"`.
626 "value": { # The option's value packed in an Any message. If the value is a primitive,
627 # the corresponding wrapper type defined in google/protobuf/wrappers.proto
628 # should be used. If the value is an enum, it should be stored as an int32
629 # value using the google.protobuf.Int32Value type.
630 "a_key": "", # Properties of the object. Contains field @type with type URL.
631 },
632 },
633 ],
634 },
635 ],
636 },
637 ],
638 "authentication": { # `Authentication` defines the authentication configuration for an API. # Auth configuration. Contains only the OAuth rules.
639 #
640 # Example for an API targeted for external use:
641 #
642 # name: calendar.googleapis.com
643 # authentication:
644 # providers:
645 # - id: google_calendar_auth
646 # jwks_uri: https://www.googleapis.com/oauth2/v1/certs
647 # issuer: https://securetoken.google.com
648 # rules:
649 # - selector: "*"
650 # requirements:
651 # provider_id: google_calendar_auth
652 "rules": [ # A list of authentication rules that apply to individual API methods.
653 #
654 # **NOTE:** All service configuration rules follow "last one wins" order.
655 { # Authentication rules for the service.
656 #
657 # By default, if a method has any authentication requirements, every request
658 # must include a valid credential matching one of the requirements.
659 # It's an error to include more than one kind of credential in a single
660 # request.
661 #
662 # If a method doesn't have any auth requirements, request credentials will be
663 # ignored.
664 "oauth": { # OAuth scopes are a way to define data and permissions on data. For example, # The requirements for OAuth credentials.
665 # there are scopes defined for "Read-only access to Google Calendar" and
666 # "Access to Cloud Platform". Users can consent to a scope for an application,
667 # giving it permission to access that data on their behalf.
668 #
669 # OAuth scope specifications should be fairly coarse grained; a user will need
670 # to see and understand the text description of what your scope means.
671 #
672 # In most cases: use one or at most two OAuth scopes for an entire family of
673 # products. If your product has multiple APIs, you should probably be sharing
674 # the OAuth scope across all of those APIs.
675 #
676 # When you need finer grained OAuth consent screens: talk with your product
677 # management about how developers will use them in practice.
678 #
679 # Please note that even though each of the canonical scopes is enough for a
680 # request to be accepted and passed to the backend, a request can still fail
681 # due to the backend requiring additional scopes or permissions.
682 "canonicalScopes": "A String", # The list of publicly documented OAuth scopes that are allowed access. An
683 # OAuth token containing any of these scopes will be accepted.
684 #
685 # Example:
686 #
687 # canonical_scopes: https://www.googleapis.com/auth/calendar,
688 # https://www.googleapis.com/auth/calendar.read
689 },
690 "allowWithoutCredential": True or False, # If true, the service accepts API keys without any other credential.
691 "requirements": [ # Requirements for additional authentication providers.
692 { # User-defined authentication requirements, including support for
693 # [JSON Web Token
694 # (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
695 "providerId": "A String", # id from authentication provider.
696 #
697 # Example:
698 #
699 # provider_id: bookstore_auth
700 "audiences": "A String", # NOTE: This will be deprecated soon, once AuthProvider.audiences is
701 # implemented and accepted in all the runtime components.
702 #
703 # The list of JWT
704 # [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).
705 # that are allowed to access. A JWT containing any of these audiences will
706 # be accepted. When this setting is absent, only JWTs with audience
707 # "https://Service_name/API_name"
708 # will be accepted. For example, if no audiences are in the setting,
709 # LibraryService API will only accept JWTs with the following audience
710 # "https://library-example.googleapis.com/google.example.library.v1.LibraryService".
711 #
712 # Example:
713 #
714 # audiences: bookstore_android.apps.googleusercontent.com,
715 # bookstore_web.apps.googleusercontent.com
716 },
717 ],
718 "selector": "A String", # Selects the methods to which this rule applies.
719 #
720 # Refer to selector for syntax details.
721 },
722 ],
723 "providers": [ # Defines a set of authentication providers that a service supports.
724 { # Configuration for an authentication provider, including support for
725 # [JSON Web Token
726 # (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
Dan O'Mearadd494642020-05-01 07:42:23 -0700727 "jwtLocations": [ # Defines the locations to extract the JWT.
728 #
729 # JWT locations can be either from HTTP headers or URL query parameters.
730 # The rule is that the first match wins. The checking order is: checking
731 # all headers first, then URL query parameters.
732 #
733 # If not specified, default to use following 3 locations:
734 # 1) Authorization: Bearer
735 # 2) x-goog-iap-jwt-assertion
736 # 3) access_token query parameter
737 #
738 # Default locations can be specified as followings:
739 # jwt_locations:
740 # - header: Authorization
741 # value_prefix: "Bearer "
742 # - header: x-goog-iap-jwt-assertion
743 # - query: access_token
744 { # Specifies a location to extract JWT from an API request.
745 "query": "A String", # Specifies URL query parameter name to extract JWT token.
746 "valuePrefix": "A String", # The value prefix. The value format is "value_prefix{token}"
747 # Only applies to "in" header type. Must be empty for "in" query type.
748 # If not empty, the header value has to match (case sensitive) this prefix.
749 # If not matched, JWT will not be extracted. If matched, JWT will be
750 # extracted after the prefix is removed.
751 #
752 # For example, for "Authorization: Bearer {JWT}",
753 # value_prefix="Bearer " with a space at the end.
754 "header": "A String", # Specifies HTTP header name to extract JWT token.
755 },
756 ],
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700757 "audiences": "A String", # The list of JWT
758 # [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).
759 # that are allowed to access. A JWT containing any of these audiences will
Dan O'Mearadd494642020-05-01 07:42:23 -0700760 # be accepted. When this setting is absent, JWTs with audiences:
761 # - "https://[service.name]/[google.protobuf.Api.name]"
762 # - "https://[service.name]/"
763 # will be accepted.
764 # For example, if no audiences are in the setting, LibraryService API will
765 # accept JWTs with the following audiences:
766 # -
767 # https://library-example.googleapis.com/google.example.library.v1.LibraryService
768 # - https://library-example.googleapis.com/
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700769 #
770 # Example:
771 #
772 # audiences: bookstore_android.apps.googleusercontent.com,
773 # bookstore_web.apps.googleusercontent.com
774 "jwksUri": "A String", # URL of the provider's public key set to validate signature of the JWT. See
775 # [OpenID
776 # Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata).
777 # Optional if the key set document:
778 # - can be retrieved from
779 # [OpenID
780 # Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html of
781 # the issuer.
782 # - can be inferred from the email domain of the issuer (e.g. a Google
783 # service account).
784 #
785 # Example: https://www.googleapis.com/oauth2/v1/certs
786 "id": "A String", # The unique identifier of the auth provider. It will be referred to by
787 # `AuthRequirement.provider_id`.
788 #
789 # Example: "bookstore_auth".
790 "authorizationUrl": "A String", # Redirect URL if JWT token is required but not present or is expired.
791 # Implement authorizationUrl of securityDefinitions in OpenAPI spec.
792 "issuer": "A String", # Identifies the principal that issued the JWT. See
793 # https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.1
794 # Usually a URL or an email address.
795 #
796 # Example: https://securetoken.google.com
797 # Example: 1234567-compute@developer.gserviceaccount.com
798 },
799 ],
800 },
801 "usage": { # Configuration controlling usage of a service. # Configuration controlling usage of this service.
802 "rules": [ # A list of usage rules that apply to individual API methods.
803 #
804 # **NOTE:** All service configuration rules follow "last one wins" order.
805 { # Usage configuration rules for the service.
806 #
807 # NOTE: Under development.
808 #
809 #
810 # Use this rule to configure unregistered calls for the service. Unregistered
811 # calls are calls that do not contain consumer project identity.
812 # (Example: calls that do not contain an API key).
813 # By default, API methods do not allow unregistered calls, and each method call
814 # must be identified by a consumer project identity. Use this rule to
815 # allow/disallow unregistered calls.
816 #
817 # Example of an API that wants to allow unregistered calls for entire service.
818 #
819 # usage:
820 # rules:
821 # - selector: "*"
822 # allow_unregistered_calls: true
823 #
824 # Example of a method that wants to allow unregistered calls.
825 #
826 # usage:
827 # rules:
828 # - selector: "google.example.library.v1.LibraryService.CreateBook"
829 # allow_unregistered_calls: true
830 "selector": "A String", # Selects the methods to which this rule applies. Use '*' to indicate all
831 # methods in all APIs.
832 #
833 # Refer to selector for syntax details.
834 "skipServiceControl": True or False, # If true, the selected method should skip service control and the control
835 # plane features, such as quota and billing, will not be available.
836 # This flag is used by Google Cloud Endpoints to bypass checks for internal
837 # methods, such as service health check methods.
838 "allowUnregisteredCalls": True or False, # If true, the selected method allows unregistered calls, e.g. calls
839 # that don't identify any user or application.
840 },
841 ],
Dan O'Mearadd494642020-05-01 07:42:23 -0700842 "serviceIdentity": { # The per-product per-project service identity for a service. # The configuration of a per-product per-project service identity.
843 #
844 #
845 # Use this field to configure per-product per-project service identity.
846 # Example of a service identity configuration.
847 #
848 # usage:
849 # service_identity:
850 # - service_account_parent: "projects/123456789"
851 # display_name: "Cloud XXX Service Agent"
852 # description: "Used as the identity of Cloud XXX to access resources"
853 "displayName": "A String", # Optional. A user-specified name for the service account.
854 # Must be less than or equal to 100 UTF-8 bytes.
855 "description": "A String", # Optional. A user-specified opaque description of the service account.
856 # Must be less than or equal to 256 UTF-8 bytes.
857 "serviceAccountParent": "A String", # A service account project that hosts the service accounts.
858 #
859 # An example name would be:
860 # `projects/123456789`
861 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700862 "producerNotificationChannel": "A String", # The full resource name of a channel used for sending notifications to the
863 # service producer.
864 #
865 # Google Service Management currently only supports
866 # [Google Cloud Pub/Sub](https://cloud.google.com/pubsub) as a notification
867 # channel. To use Google Cloud Pub/Sub as the channel, this must be the name
868 # of a Cloud Pub/Sub topic that uses the Cloud Pub/Sub topic name format
869 # documented in https://cloud.google.com/pubsub/docs/overview.
870 "requirements": [ # Requirements that must be satisfied before a consumer project can use the
Dan O'Mearadd494642020-05-01 07:42:23 -0700871 # service. Each requirement is of the form &lt;service.name&gt;/&lt;requirement-id&gt;;
872 # for example 'serviceusage.googleapis.com/billing-enabled'.
873 "A String",
874 ],
875 },
876 "endpoints": [ # Configuration for network endpoints. Contains only the names and aliases
877 # of the endpoints.
878 { # `Endpoint` describes a network endpoint that serves a set of APIs.
879 # A service may expose any number of endpoints, and all endpoints share the
880 # same service configuration, such as quota configuration and monitoring
881 # configuration.
882 #
883 # Example service configuration:
884 #
885 # name: library-example.googleapis.com
886 # endpoints:
887 # # Below entry makes 'google.example.library.v1.Library'
888 # # API be served from endpoint address library-example.googleapis.com.
889 # # It also allows HTTP OPTIONS calls to be passed to the backend, for
890 # # it to decide whether the subsequent cross-origin request is
891 # # allowed to proceed.
892 # - name: library-example.googleapis.com
893 # allow_cors: true
894 "allowCors": True or False, # Allowing
895 # [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka
896 # cross-domain traffic, would allow the backends served from this endpoint to
897 # receive and respond to HTTP OPTIONS requests. The response will be used by
898 # the browser to determine whether the subsequent cross-origin request is
899 # allowed to proceed.
900 "target": "A String", # The specification of an Internet routable address of API frontend that will
901 # handle requests to this [API
902 # Endpoint](https://cloud.google.com/apis/design/glossary). It should be
903 # either a valid IPv4 address or a fully-qualified domain name. For example,
904 # "8.8.8.8" or "myservice.appspot.com".
905 "features": [ # The list of features enabled on this endpoint.
906 "A String",
907 ],
908 "name": "A String", # The canonical name of this endpoint.
909 "aliases": [ # DEPRECATED: This field is no longer supported. Instead of using aliases,
910 # please specify multiple google.api.Endpoint for each of the intended
911 # aliases.
912 #
913 # Additional names that this endpoint will be hosted on.
914 "A String",
915 ],
916 },
917 ],
918 },
919 "name": "A String", # The resource name of the consumer and service.
920 #
921 # A valid name would be:
922 # - projects/123/services/serviceusage.googleapis.com
923 "parent": "A String", # The resource name of the consumer.
924 #
925 # A valid name would be:
926 # - projects/123
927 },
928 ],
929 }</pre>
930</div>
931
932<div class="method">
933 <code class="details" id="disable">disable(name, body=None, x__xgafv=None)</code>
934 <pre>Disable a service so that it can no longer be used with a project.
935This prevents unintended usage that may cause unexpected billing
936charges or security leaks.
937
938It is not valid to call the disable method on a service that is not
939currently enabled. Callers will receive a `FAILED_PRECONDITION` status if
940the target service is not currently enabled.
941
942Args:
943 name: string, Name of the consumer and service to disable the service on.
944
945The enable and disable methods currently only support projects.
946
947An example name would be:
948`projects/123/services/serviceusage.googleapis.com` where `123` is the
949project number. (required)
950 body: object, The request body.
951 The object takes the form of:
952
953{ # Request message for the `DisableService` method.
954 "disableDependentServices": True or False, # Indicates if services that are enabled and which depend on this service
955 # should also be disabled. If not set, an error will be generated if any
956 # enabled services depend on the service to be disabled. When set, the
957 # service, and any enabled services that depend on it, will be disabled
958 # together.
959 }
960
961 x__xgafv: string, V1 error format.
962 Allowed values
963 1 - v1 error format
964 2 - v2 error format
965
966Returns:
967 An object of the form:
968
969 { # This resource represents a long-running operation that is the result of a
970 # network API call.
971 "response": { # The normal response of the operation in case of success. If the original
972 # method returns no data on success, such as `Delete`, the response is
973 # `google.protobuf.Empty`. If the original method is standard
974 # `Get`/`Create`/`Update`, the response should be the resource. For other
975 # methods, the response should have the type `XxxResponse`, where `Xxx`
976 # is the original method name. For example, if the original method name
977 # is `TakeSnapshot()`, the inferred response type is
978 # `TakeSnapshotResponse`.
979 "a_key": "", # Properties of the object. Contains field @type with type URL.
980 },
981 "metadata": { # Service-specific metadata associated with the operation. It typically
982 # contains progress information and common metadata such as create time.
983 # Some services might not provide such metadata. Any method that returns a
984 # long-running operation should document the metadata type, if any.
985 "a_key": "", # Properties of the object. Contains field @type with type URL.
986 },
987 "done": True or False, # If the value is `false`, it means the operation is still in progress.
988 # If `true`, the operation is completed, and either `error` or `response` is
989 # available.
990 "name": "A String", # The server-assigned name, which is only unique within the same service that
991 # originally returns it. If you use the default HTTP mapping, the
992 # `name` should be a resource name ending with `operations/{unique_id}`.
993 "error": { # The `Status` type defines a logical error model that is suitable for # The error result of the operation in case of failure or cancellation.
994 # different programming environments, including REST APIs and RPC APIs. It is
995 # used by [gRPC](https://github.com/grpc). Each `Status` message contains
996 # three pieces of data: error code, error message, and error details.
997 #
998 # You can find out more about this error model and how to work with it in the
999 # [API Design Guide](https://cloud.google.com/apis/design/errors).
1000 "message": "A String", # A developer-facing error message, which should be in English. Any
1001 # user-facing error message should be localized and sent in the
1002 # google.rpc.Status.details field, or localized by the client.
1003 "code": 42, # The status code, which should be an enum value of google.rpc.Code.
1004 "details": [ # A list of messages that carry the error details. There is a common set of
1005 # message types for APIs to use.
1006 {
1007 "a_key": "", # Properties of the object. Contains field @type with type URL.
1008 },
1009 ],
1010 },
1011 }</pre>
1012</div>
1013
1014<div class="method">
1015 <code class="details" id="enable">enable(name, body=None, x__xgafv=None)</code>
1016 <pre>Enable a service so that it can be used with a project.
1017
1018Args:
1019 name: string, Name of the consumer and service to enable the service on.
1020
1021The `EnableService` and `DisableService` methods currently only support
1022projects.
1023
1024Enabling a service requires that the service is public or is shared with
1025the user enabling the service.
1026
1027An example name would be:
1028`projects/123/services/serviceusage.googleapis.com` where `123` is the
1029project number. (required)
1030 body: object, The request body.
1031 The object takes the form of:
1032
1033{ # Request message for the `EnableService` method.
1034 }
1035
1036 x__xgafv: string, V1 error format.
1037 Allowed values
1038 1 - v1 error format
1039 2 - v2 error format
1040
1041Returns:
1042 An object of the form:
1043
1044 { # This resource represents a long-running operation that is the result of a
1045 # network API call.
1046 "response": { # The normal response of the operation in case of success. If the original
1047 # method returns no data on success, such as `Delete`, the response is
1048 # `google.protobuf.Empty`. If the original method is standard
1049 # `Get`/`Create`/`Update`, the response should be the resource. For other
1050 # methods, the response should have the type `XxxResponse`, where `Xxx`
1051 # is the original method name. For example, if the original method name
1052 # is `TakeSnapshot()`, the inferred response type is
1053 # `TakeSnapshotResponse`.
1054 "a_key": "", # Properties of the object. Contains field @type with type URL.
1055 },
1056 "metadata": { # Service-specific metadata associated with the operation. It typically
1057 # contains progress information and common metadata such as create time.
1058 # Some services might not provide such metadata. Any method that returns a
1059 # long-running operation should document the metadata type, if any.
1060 "a_key": "", # Properties of the object. Contains field @type with type URL.
1061 },
1062 "done": True or False, # If the value is `false`, it means the operation is still in progress.
1063 # If `true`, the operation is completed, and either `error` or `response` is
1064 # available.
1065 "name": "A String", # The server-assigned name, which is only unique within the same service that
1066 # originally returns it. If you use the default HTTP mapping, the
1067 # `name` should be a resource name ending with `operations/{unique_id}`.
1068 "error": { # The `Status` type defines a logical error model that is suitable for # The error result of the operation in case of failure or cancellation.
1069 # different programming environments, including REST APIs and RPC APIs. It is
1070 # used by [gRPC](https://github.com/grpc). Each `Status` message contains
1071 # three pieces of data: error code, error message, and error details.
1072 #
1073 # You can find out more about this error model and how to work with it in the
1074 # [API Design Guide](https://cloud.google.com/apis/design/errors).
1075 "message": "A String", # A developer-facing error message, which should be in English. Any
1076 # user-facing error message should be localized and sent in the
1077 # google.rpc.Status.details field, or localized by the client.
1078 "code": 42, # The status code, which should be an enum value of google.rpc.Code.
1079 "details": [ # A list of messages that carry the error details. There is a common set of
1080 # message types for APIs to use.
1081 {
1082 "a_key": "", # Properties of the object. Contains field @type with type URL.
1083 },
1084 ],
1085 },
1086 }</pre>
1087</div>
1088
1089<div class="method">
1090 <code class="details" id="get">get(name, x__xgafv=None)</code>
1091 <pre>Returns the service configuration and enabled state for a given service.
1092
1093Args:
1094 name: string, Name of the consumer and service to get the `ConsumerState` for.
1095
1096An example name would be:
1097`projects/123/services/serviceusage.googleapis.com` where `123` is the
1098project number. (required)
1099 x__xgafv: string, V1 error format.
1100 Allowed values
1101 1 - v1 error format
1102 2 - v2 error format
1103
1104Returns:
1105 An object of the form:
1106
1107 { # A service that is available for use by the consumer.
1108 "state": "A String", # Whether or not the service has been enabled for use by the consumer.
1109 "config": { # The configuration of the service. # The service configuration of the available service.
1110 # Some fields may be filtered out of the configuration in responses to
1111 # the `ListServices` method. These fields are present only in responses to
1112 # the `GetService` method.
1113 "name": "A String", # The DNS address at which this service is available.
1114 #
1115 # An example DNS address would be:
1116 # `calendar.googleapis.com`.
1117 "title": "A String", # The product title for this service.
1118 "documentation": { # `Documentation` provides the information for describing a service. # Additional API documentation. Contains only the summary and the
1119 # documentation URL.
1120 #
1121 # Example:
1122 # &lt;pre&gt;&lt;code&gt;documentation:
1123 # summary: &gt;
1124 # The Google Calendar API gives access
1125 # to most calendar features.
1126 # pages:
1127 # - name: Overview
1128 # content: &amp;#40;== include google/foo/overview.md ==&amp;#41;
1129 # - name: Tutorial
1130 # content: &amp;#40;== include google/foo/tutorial.md ==&amp;#41;
1131 # subpages;
1132 # - name: Java
1133 # content: &amp;#40;== include google/foo/tutorial_java.md ==&amp;#41;
1134 # rules:
1135 # - selector: google.calendar.Calendar.Get
1136 # description: &gt;
1137 # ...
1138 # - selector: google.calendar.Calendar.Put
1139 # description: &gt;
1140 # ...
1141 # &lt;/code&gt;&lt;/pre&gt;
1142 # Documentation is provided in markdown syntax. In addition to
1143 # standard markdown features, definition lists, tables and fenced
1144 # code blocks are supported. Section headers can be provided and are
1145 # interpreted relative to the section nesting of the context where
1146 # a documentation fragment is embedded.
1147 #
1148 # Documentation from the IDL is merged with documentation defined
1149 # via the config at normalization time, where documentation provided
1150 # by config rules overrides IDL provided.
1151 #
1152 # A number of constructs specific to the API platform are supported
1153 # in documentation text.
1154 #
1155 # In order to reference a proto element, the following
1156 # notation can be used:
1157 # &lt;pre&gt;&lt;code&gt;&amp;#91;fully.qualified.proto.name]&amp;#91;]&lt;/code&gt;&lt;/pre&gt;
1158 # To override the display text used for the link, this can be used:
1159 # &lt;pre&gt;&lt;code&gt;&amp;#91;display text]&amp;#91;fully.qualified.proto.name]&lt;/code&gt;&lt;/pre&gt;
1160 # Text can be excluded from doc using the following notation:
1161 # &lt;pre&gt;&lt;code&gt;&amp;#40;-- internal comment --&amp;#41;&lt;/code&gt;&lt;/pre&gt;
1162 #
1163 # A few directives are available in documentation. Note that
1164 # directives must appear on a single line to be properly
1165 # identified. The `include` directive includes a markdown file from
1166 # an external source:
1167 # &lt;pre&gt;&lt;code&gt;&amp;#40;== include path/to/file ==&amp;#41;&lt;/code&gt;&lt;/pre&gt;
1168 # The `resource_for` directive marks a message to be the resource of
1169 # a collection in REST view. If it is not specified, tools attempt
1170 # to infer the resource from the operations in a collection:
1171 # &lt;pre&gt;&lt;code&gt;&amp;#40;== resource_for v1.shelves.books ==&amp;#41;&lt;/code&gt;&lt;/pre&gt;
1172 # The directive `suppress_warning` does not directly affect documentation
1173 # and is documented together with service config validation.
1174 "rules": [ # A list of documentation rules that apply to individual API elements.
1175 #
1176 # **NOTE:** All service configuration rules follow "last one wins" order.
1177 { # A documentation rule provides information about individual API elements.
1178 "description": "A String", # Description of the selected API(s).
1179 "deprecationDescription": "A String", # Deprecation description of the selected element(s). It can be provided if
1180 # an element is marked as `deprecated`.
1181 "selector": "A String", # The selector is a comma-separated list of patterns. Each pattern is a
1182 # qualified name of the element which may end in "*", indicating a wildcard.
1183 # Wildcards are only allowed at the end and for a whole component of the
1184 # qualified name, i.e. "foo.*" is ok, but not "foo.b*" or "foo.*.bar". A
1185 # wildcard will match one or more components. To specify a default for all
1186 # applicable elements, the whole pattern "*" is used.
1187 },
1188 ],
1189 "documentationRootUrl": "A String", # The URL to the root of documentation.
1190 "summary": "A String", # A short summary of what the service does. Can only be provided by
1191 # plain text.
1192 "serviceRootUrl": "A String", # Specifies the service root url if the default one (the service name
1193 # from the yaml file) is not suitable. This can be seen in any fully
1194 # specified service urls as well as sections that show a base that other
1195 # urls are relative to.
1196 "overview": "A String", # Declares a single overview page. For example:
1197 # &lt;pre&gt;&lt;code&gt;documentation:
1198 # summary: ...
1199 # overview: &amp;#40;== include overview.md ==&amp;#41;
1200 # &lt;/code&gt;&lt;/pre&gt;
1201 # This is a shortcut for the following declaration (using pages style):
1202 # &lt;pre&gt;&lt;code&gt;documentation:
1203 # summary: ...
1204 # pages:
1205 # - name: Overview
1206 # content: &amp;#40;== include overview.md ==&amp;#41;
1207 # &lt;/code&gt;&lt;/pre&gt;
1208 # Note: you cannot specify both `overview` field and `pages` field.
1209 "pages": [ # The top level pages for the documentation set.
1210 { # Represents a documentation page. A page can contain subpages to represent
1211 # nested documentation set structure.
1212 "content": "A String", # The Markdown content of the page. You can use &lt;code&gt;&amp;#40;== include {path}
1213 # ==&amp;#41;&lt;/code&gt; to include content from a Markdown file.
1214 "subpages": [ # Subpages of this page. The order of subpages specified here will be
1215 # honored in the generated docset.
1216 # Object with schema name: Page
1217 ],
1218 "name": "A String", # The name of the page. It will be used as an identity of the page to
1219 # generate URI of the page, text of the link to this page in navigation,
1220 # etc. The full page name (start from the root page name to this page
1221 # concatenated with `.`) can be used as reference to the page in your
1222 # documentation. For example:
1223 # &lt;pre&gt;&lt;code&gt;pages:
1224 # - name: Tutorial
1225 # content: &amp;#40;== include tutorial.md ==&amp;#41;
1226 # subpages:
1227 # - name: Java
1228 # content: &amp;#40;== include tutorial_java.md ==&amp;#41;
1229 # &lt;/code&gt;&lt;/pre&gt;
1230 # You can reference `Java` page using Markdown reference link syntax:
1231 # `Java`.
1232 },
1233 ],
1234 },
1235 "quota": { # Quota configuration helps to achieve fairness and budgeting in service # Quota configuration.
1236 # usage.
1237 #
1238 # The metric based quota configuration works this way:
1239 # - The service configuration defines a set of metrics.
1240 # - For API calls, the quota.metric_rules maps methods to metrics with
1241 # corresponding costs.
1242 # - The quota.limits defines limits on the metrics, which will be used for
1243 # quota checks at runtime.
1244 #
1245 # An example quota configuration in yaml format:
1246 #
1247 # quota:
1248 # limits:
1249 #
1250 # - name: apiWriteQpsPerProject
1251 # metric: library.googleapis.com/write_calls
1252 # unit: "1/min/{project}" # rate limit for consumer projects
1253 # values:
1254 # STANDARD: 10000
1255 #
1256 #
1257 # # The metric rules bind all methods to the read_calls metric,
1258 # # except for the UpdateBook and DeleteBook methods. These two methods
1259 # # are mapped to the write_calls metric, with the UpdateBook method
1260 # # consuming at twice rate as the DeleteBook method.
1261 # metric_rules:
1262 # - selector: "*"
1263 # metric_costs:
1264 # library.googleapis.com/read_calls: 1
1265 # - selector: google.example.library.v1.LibraryService.UpdateBook
1266 # metric_costs:
1267 # library.googleapis.com/write_calls: 2
1268 # - selector: google.example.library.v1.LibraryService.DeleteBook
1269 # metric_costs:
1270 # library.googleapis.com/write_calls: 1
1271 #
1272 # Corresponding Metric definition:
1273 #
1274 # metrics:
1275 # - name: library.googleapis.com/read_calls
1276 # display_name: Read requests
1277 # metric_kind: DELTA
1278 # value_type: INT64
1279 #
1280 # - name: library.googleapis.com/write_calls
1281 # display_name: Write requests
1282 # metric_kind: DELTA
1283 # value_type: INT64
1284 #
1285 "metricRules": [ # List of `MetricRule` definitions, each one mapping a selected method to one
1286 # or more metrics.
1287 { # Bind API methods to metrics. Binding a method to a metric causes that
1288 # metric's configured quota behaviors to apply to the method call.
1289 "metricCosts": { # Metrics to update when the selected methods are called, and the associated
1290 # cost applied to each metric.
1291 #
1292 # The key of the map is the metric name, and the values are the amount
1293 # increased for the metric against which the quota limits are defined.
1294 # The value must not be negative.
1295 "a_key": "A String",
1296 },
1297 "selector": "A String", # Selects the methods to which this rule applies.
1298 #
1299 # Refer to selector for syntax details.
1300 },
1301 ],
1302 "limits": [ # List of `QuotaLimit` definitions for the service.
1303 { # `QuotaLimit` defines a specific limit that applies over a specified duration
1304 # for a limit type. There can be at most one limit for a duration and limit
1305 # type combination defined within a `QuotaGroup`.
1306 "displayName": "A String", # User-visible display name for this limit.
1307 # Optional. If not set, the UI will provide a default display name based on
1308 # the quota configuration. This field can be used to override the default
1309 # display name generated from the configuration.
1310 "description": "A String", # Optional. User-visible, extended description for this quota limit.
1311 # Should be used only when more context is needed to understand this limit
1312 # than provided by the limit's display name (see: `display_name`).
1313 "defaultLimit": "A String", # Default number of tokens that can be consumed during the specified
1314 # duration. This is the number of tokens assigned when a client
1315 # application developer activates the service for his/her project.
1316 #
1317 # Specifying a value of 0 will block all requests. This can be used if you
1318 # are provisioning quota to selected consumers and blocking others.
1319 # Similarly, a value of -1 will indicate an unlimited quota. No other
1320 # negative values are allowed.
1321 #
1322 # Used by group-based quotas only.
1323 "metric": "A String", # The name of the metric this quota limit applies to. The quota limits with
1324 # the same metric will be checked together during runtime. The metric must be
1325 # defined within the service config.
1326 "values": { # Tiered limit values. You must specify this as a key:value pair, with an
1327 # integer value that is the maximum number of requests allowed for the
1328 # specified unit. Currently only STANDARD is supported.
1329 "a_key": "A String",
1330 },
1331 "maxLimit": "A String", # Maximum number of tokens that can be consumed during the specified
1332 # duration. Client application developers can override the default limit up
1333 # to this maximum. If specified, this value cannot be set to a value less
1334 # than the default limit. If not specified, it is set to the default limit.
1335 #
1336 # To allow clients to apply overrides with no upper bound, set this to -1,
1337 # indicating unlimited maximum quota.
1338 #
1339 # Used by group-based quotas only.
1340 "duration": "A String", # Duration of this limit in textual notation. Must be "100s" or "1d".
1341 #
1342 # Used by group-based quotas only.
1343 "freeTier": "A String", # Free tier value displayed in the Developers Console for this limit.
1344 # The free tier is the number of tokens that will be subtracted from the
1345 # billed amount when billing is enabled.
1346 # This field can only be set on a limit with duration "1d", in a billable
1347 # group; it is invalid on any other limit. If this field is not set, it
1348 # defaults to 0, indicating that there is no free tier for this service.
1349 #
1350 # Used by group-based quotas only.
1351 "unit": "A String", # Specify the unit of the quota limit. It uses the same syntax as
1352 # Metric.unit. The supported unit kinds are determined by the quota
1353 # backend system.
1354 #
1355 # Here are some examples:
1356 # * "1/min/{project}" for quota per minute per project.
1357 #
1358 # Note: the order of unit components is insignificant.
1359 # The "1" at the beginning is required to follow the metric unit syntax.
1360 "name": "A String", # Name of the quota limit.
1361 #
1362 # The name must be provided, and it must be unique within the service. The
1363 # name can only include alphanumeric characters as well as '-'.
1364 #
1365 # The maximum length of the limit name is 64 characters.
1366 },
1367 ],
1368 },
1369 "apis": [ # A list of API interfaces exported by this service. Contains only the names,
1370 # versions, and method names of the interfaces.
1371 { # Api is a light-weight descriptor for an API Interface.
1372 #
1373 # Interfaces are also described as "protocol buffer services" in some contexts,
1374 # such as by the "service" keyword in a .proto file, but they are different
1375 # from API Services, which represent a concrete implementation of an interface
1376 # as opposed to simply a description of methods and bindings. They are also
1377 # sometimes simply referred to as "APIs" in other contexts, such as the name of
1378 # this message itself. See https://cloud.google.com/apis/design/glossary for
1379 # detailed terminology.
1380 "name": "A String", # The fully qualified name of this interface, including package name
1381 # followed by the interface's simple name.
1382 "sourceContext": { # `SourceContext` represents information about the source of a # Source context for the protocol buffer service represented by this
1383 # message.
1384 # protobuf element, like the file in which it is defined.
1385 "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
1386 # protobuf element. For example: `"google/protobuf/source_context.proto"`.
1387 },
1388 "mixins": [ # Included interfaces. See Mixin.
1389 { # Declares an API Interface to be included in this interface. The including
1390 # interface must redeclare all the methods from the included interface, but
1391 # documentation and options are inherited as follows:
1392 #
1393 # - If after comment and whitespace stripping, the documentation
1394 # string of the redeclared method is empty, it will be inherited
1395 # from the original method.
1396 #
1397 # - Each annotation belonging to the service config (http,
1398 # visibility) which is not set in the redeclared method will be
1399 # inherited.
1400 #
1401 # - If an http annotation is inherited, the path pattern will be
1402 # modified as follows. Any version prefix will be replaced by the
1403 # version of the including interface plus the root path if
1404 # specified.
1405 #
1406 # Example of a simple mixin:
1407 #
1408 # package google.acl.v1;
1409 # service AccessControl {
1410 # // Get the underlying ACL object.
1411 # rpc GetAcl(GetAclRequest) returns (Acl) {
1412 # option (google.api.http).get = "/v1/{resource=**}:getAcl";
1413 # }
1414 # }
1415 #
1416 # package google.storage.v2;
1417 # service Storage {
1418 # // rpc GetAcl(GetAclRequest) returns (Acl);
1419 #
1420 # // Get a data record.
1421 # rpc GetData(GetDataRequest) returns (Data) {
1422 # option (google.api.http).get = "/v2/{resource=**}";
1423 # }
1424 # }
1425 #
1426 # Example of a mixin configuration:
1427 #
1428 # apis:
1429 # - name: google.storage.v2.Storage
1430 # mixins:
1431 # - name: google.acl.v1.AccessControl
1432 #
1433 # The mixin construct implies that all methods in `AccessControl` are
1434 # also declared with same name and request/response types in
1435 # `Storage`. A documentation generator or annotation processor will
1436 # see the effective `Storage.GetAcl` method after inherting
1437 # documentation and annotations as follows:
1438 #
1439 # service Storage {
1440 # // Get the underlying ACL object.
1441 # rpc GetAcl(GetAclRequest) returns (Acl) {
1442 # option (google.api.http).get = "/v2/{resource=**}:getAcl";
1443 # }
1444 # ...
1445 # }
1446 #
1447 # Note how the version in the path pattern changed from `v1` to `v2`.
1448 #
1449 # If the `root` field in the mixin is specified, it should be a
1450 # relative path under which inherited HTTP paths are placed. Example:
1451 #
1452 # apis:
1453 # - name: google.storage.v2.Storage
1454 # mixins:
1455 # - name: google.acl.v1.AccessControl
1456 # root: acls
1457 #
1458 # This implies the following inherited HTTP annotation:
1459 #
1460 # service Storage {
1461 # // Get the underlying ACL object.
1462 # rpc GetAcl(GetAclRequest) returns (Acl) {
1463 # option (google.api.http).get = "/v2/acls/{resource=**}:getAcl";
1464 # }
1465 # ...
1466 # }
1467 "root": "A String", # If non-empty specifies a path under which inherited HTTP paths
1468 # are rooted.
1469 "name": "A String", # The fully qualified name of the interface which is included.
1470 },
1471 ],
1472 "syntax": "A String", # The source syntax of the service.
1473 "version": "A String", # A version string for this interface. If specified, must have the form
1474 # `major-version.minor-version`, as in `1.10`. If the minor version is
1475 # omitted, it defaults to zero. If the entire version field is empty, the
1476 # major version is derived from the package name, as outlined below. If the
1477 # field is not empty, the version in the package name will be verified to be
1478 # consistent with what is provided here.
1479 #
1480 # The versioning schema uses [semantic
1481 # versioning](http://semver.org) where the major version number
1482 # indicates a breaking change and the minor version an additive,
1483 # non-breaking change. Both version numbers are signals to users
1484 # what to expect from different versions, and should be carefully
1485 # chosen based on the product plan.
1486 #
1487 # The major version is also reflected in the package name of the
1488 # interface, which must end in `v&lt;major-version&gt;`, as in
1489 # `google.feature.v1`. For major versions 0 and 1, the suffix can
1490 # be omitted. Zero major versions must only be used for
1491 # experimental, non-GA interfaces.
1492 "options": [ # Any metadata attached to the interface.
1493 { # A protocol buffer option, which can be attached to a message, field,
1494 # enumeration, etc.
1495 "name": "A String", # The option's name. For protobuf built-in options (options defined in
1496 # descriptor.proto), this is the short name. For example, `"map_entry"`.
1497 # For custom options, it should be the fully-qualified name. For example,
1498 # `"google.api.http"`.
1499 "value": { # The option's value packed in an Any message. If the value is a primitive,
1500 # the corresponding wrapper type defined in google/protobuf/wrappers.proto
1501 # should be used. If the value is an enum, it should be stored as an int32
1502 # value using the google.protobuf.Int32Value type.
1503 "a_key": "", # Properties of the object. Contains field @type with type URL.
1504 },
1505 },
1506 ],
1507 "methods": [ # The methods of this interface, in unspecified order.
1508 { # Method represents a method of an API interface.
1509 "name": "A String", # The simple name of this method.
1510 "requestStreaming": True or False, # If true, the request is streamed.
1511 "responseTypeUrl": "A String", # The URL of the output message type.
1512 "requestTypeUrl": "A String", # A URL of the input message type.
1513 "responseStreaming": True or False, # If true, the response is streamed.
1514 "syntax": "A String", # The source syntax of this method.
1515 "options": [ # Any metadata attached to the method.
1516 { # A protocol buffer option, which can be attached to a message, field,
1517 # enumeration, etc.
1518 "name": "A String", # The option's name. For protobuf built-in options (options defined in
1519 # descriptor.proto), this is the short name. For example, `"map_entry"`.
1520 # For custom options, it should be the fully-qualified name. For example,
1521 # `"google.api.http"`.
1522 "value": { # The option's value packed in an Any message. If the value is a primitive,
1523 # the corresponding wrapper type defined in google/protobuf/wrappers.proto
1524 # should be used. If the value is an enum, it should be stored as an int32
1525 # value using the google.protobuf.Int32Value type.
1526 "a_key": "", # Properties of the object. Contains field @type with type URL.
1527 },
1528 },
1529 ],
1530 },
1531 ],
1532 },
1533 ],
1534 "authentication": { # `Authentication` defines the authentication configuration for an API. # Auth configuration. Contains only the OAuth rules.
1535 #
1536 # Example for an API targeted for external use:
1537 #
1538 # name: calendar.googleapis.com
1539 # authentication:
1540 # providers:
1541 # - id: google_calendar_auth
1542 # jwks_uri: https://www.googleapis.com/oauth2/v1/certs
1543 # issuer: https://securetoken.google.com
1544 # rules:
1545 # - selector: "*"
1546 # requirements:
1547 # provider_id: google_calendar_auth
1548 "rules": [ # A list of authentication rules that apply to individual API methods.
1549 #
1550 # **NOTE:** All service configuration rules follow "last one wins" order.
1551 { # Authentication rules for the service.
1552 #
1553 # By default, if a method has any authentication requirements, every request
1554 # must include a valid credential matching one of the requirements.
1555 # It's an error to include more than one kind of credential in a single
1556 # request.
1557 #
1558 # If a method doesn't have any auth requirements, request credentials will be
1559 # ignored.
1560 "oauth": { # OAuth scopes are a way to define data and permissions on data. For example, # The requirements for OAuth credentials.
1561 # there are scopes defined for "Read-only access to Google Calendar" and
1562 # "Access to Cloud Platform". Users can consent to a scope for an application,
1563 # giving it permission to access that data on their behalf.
1564 #
1565 # OAuth scope specifications should be fairly coarse grained; a user will need
1566 # to see and understand the text description of what your scope means.
1567 #
1568 # In most cases: use one or at most two OAuth scopes for an entire family of
1569 # products. If your product has multiple APIs, you should probably be sharing
1570 # the OAuth scope across all of those APIs.
1571 #
1572 # When you need finer grained OAuth consent screens: talk with your product
1573 # management about how developers will use them in practice.
1574 #
1575 # Please note that even though each of the canonical scopes is enough for a
1576 # request to be accepted and passed to the backend, a request can still fail
1577 # due to the backend requiring additional scopes or permissions.
1578 "canonicalScopes": "A String", # The list of publicly documented OAuth scopes that are allowed access. An
1579 # OAuth token containing any of these scopes will be accepted.
1580 #
1581 # Example:
1582 #
1583 # canonical_scopes: https://www.googleapis.com/auth/calendar,
1584 # https://www.googleapis.com/auth/calendar.read
1585 },
1586 "allowWithoutCredential": True or False, # If true, the service accepts API keys without any other credential.
1587 "requirements": [ # Requirements for additional authentication providers.
1588 { # User-defined authentication requirements, including support for
1589 # [JSON Web Token
1590 # (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
1591 "providerId": "A String", # id from authentication provider.
1592 #
1593 # Example:
1594 #
1595 # provider_id: bookstore_auth
1596 "audiences": "A String", # NOTE: This will be deprecated soon, once AuthProvider.audiences is
1597 # implemented and accepted in all the runtime components.
1598 #
1599 # The list of JWT
1600 # [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).
1601 # that are allowed to access. A JWT containing any of these audiences will
1602 # be accepted. When this setting is absent, only JWTs with audience
1603 # "https://Service_name/API_name"
1604 # will be accepted. For example, if no audiences are in the setting,
1605 # LibraryService API will only accept JWTs with the following audience
1606 # "https://library-example.googleapis.com/google.example.library.v1.LibraryService".
1607 #
1608 # Example:
1609 #
1610 # audiences: bookstore_android.apps.googleusercontent.com,
1611 # bookstore_web.apps.googleusercontent.com
1612 },
1613 ],
1614 "selector": "A String", # Selects the methods to which this rule applies.
1615 #
1616 # Refer to selector for syntax details.
1617 },
1618 ],
1619 "providers": [ # Defines a set of authentication providers that a service supports.
1620 { # Configuration for an authentication provider, including support for
1621 # [JSON Web Token
1622 # (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
1623 "jwtLocations": [ # Defines the locations to extract the JWT.
1624 #
1625 # JWT locations can be either from HTTP headers or URL query parameters.
1626 # The rule is that the first match wins. The checking order is: checking
1627 # all headers first, then URL query parameters.
1628 #
1629 # If not specified, default to use following 3 locations:
1630 # 1) Authorization: Bearer
1631 # 2) x-goog-iap-jwt-assertion
1632 # 3) access_token query parameter
1633 #
1634 # Default locations can be specified as followings:
1635 # jwt_locations:
1636 # - header: Authorization
1637 # value_prefix: "Bearer "
1638 # - header: x-goog-iap-jwt-assertion
1639 # - query: access_token
1640 { # Specifies a location to extract JWT from an API request.
1641 "query": "A String", # Specifies URL query parameter name to extract JWT token.
1642 "valuePrefix": "A String", # The value prefix. The value format is "value_prefix{token}"
1643 # Only applies to "in" header type. Must be empty for "in" query type.
1644 # If not empty, the header value has to match (case sensitive) this prefix.
1645 # If not matched, JWT will not be extracted. If matched, JWT will be
1646 # extracted after the prefix is removed.
1647 #
1648 # For example, for "Authorization: Bearer {JWT}",
1649 # value_prefix="Bearer " with a space at the end.
1650 "header": "A String", # Specifies HTTP header name to extract JWT token.
1651 },
1652 ],
1653 "audiences": "A String", # The list of JWT
1654 # [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).
1655 # that are allowed to access. A JWT containing any of these audiences will
1656 # be accepted. When this setting is absent, JWTs with audiences:
1657 # - "https://[service.name]/[google.protobuf.Api.name]"
1658 # - "https://[service.name]/"
1659 # will be accepted.
1660 # For example, if no audiences are in the setting, LibraryService API will
1661 # accept JWTs with the following audiences:
1662 # -
1663 # https://library-example.googleapis.com/google.example.library.v1.LibraryService
1664 # - https://library-example.googleapis.com/
1665 #
1666 # Example:
1667 #
1668 # audiences: bookstore_android.apps.googleusercontent.com,
1669 # bookstore_web.apps.googleusercontent.com
1670 "jwksUri": "A String", # URL of the provider's public key set to validate signature of the JWT. See
1671 # [OpenID
1672 # Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata).
1673 # Optional if the key set document:
1674 # - can be retrieved from
1675 # [OpenID
1676 # Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html of
1677 # the issuer.
1678 # - can be inferred from the email domain of the issuer (e.g. a Google
1679 # service account).
1680 #
1681 # Example: https://www.googleapis.com/oauth2/v1/certs
1682 "id": "A String", # The unique identifier of the auth provider. It will be referred to by
1683 # `AuthRequirement.provider_id`.
1684 #
1685 # Example: "bookstore_auth".
1686 "authorizationUrl": "A String", # Redirect URL if JWT token is required but not present or is expired.
1687 # Implement authorizationUrl of securityDefinitions in OpenAPI spec.
1688 "issuer": "A String", # Identifies the principal that issued the JWT. See
1689 # https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.1
1690 # Usually a URL or an email address.
1691 #
1692 # Example: https://securetoken.google.com
1693 # Example: 1234567-compute@developer.gserviceaccount.com
1694 },
1695 ],
1696 },
1697 "usage": { # Configuration controlling usage of a service. # Configuration controlling usage of this service.
1698 "rules": [ # A list of usage rules that apply to individual API methods.
1699 #
1700 # **NOTE:** All service configuration rules follow "last one wins" order.
1701 { # Usage configuration rules for the service.
1702 #
1703 # NOTE: Under development.
1704 #
1705 #
1706 # Use this rule to configure unregistered calls for the service. Unregistered
1707 # calls are calls that do not contain consumer project identity.
1708 # (Example: calls that do not contain an API key).
1709 # By default, API methods do not allow unregistered calls, and each method call
1710 # must be identified by a consumer project identity. Use this rule to
1711 # allow/disallow unregistered calls.
1712 #
1713 # Example of an API that wants to allow unregistered calls for entire service.
1714 #
1715 # usage:
1716 # rules:
1717 # - selector: "*"
1718 # allow_unregistered_calls: true
1719 #
1720 # Example of a method that wants to allow unregistered calls.
1721 #
1722 # usage:
1723 # rules:
1724 # - selector: "google.example.library.v1.LibraryService.CreateBook"
1725 # allow_unregistered_calls: true
1726 "selector": "A String", # Selects the methods to which this rule applies. Use '*' to indicate all
1727 # methods in all APIs.
1728 #
1729 # Refer to selector for syntax details.
1730 "skipServiceControl": True or False, # If true, the selected method should skip service control and the control
1731 # plane features, such as quota and billing, will not be available.
1732 # This flag is used by Google Cloud Endpoints to bypass checks for internal
1733 # methods, such as service health check methods.
1734 "allowUnregisteredCalls": True or False, # If true, the selected method allows unregistered calls, e.g. calls
1735 # that don't identify any user or application.
1736 },
1737 ],
1738 "serviceIdentity": { # The per-product per-project service identity for a service. # The configuration of a per-product per-project service identity.
1739 #
1740 #
1741 # Use this field to configure per-product per-project service identity.
1742 # Example of a service identity configuration.
1743 #
1744 # usage:
1745 # service_identity:
1746 # - service_account_parent: "projects/123456789"
1747 # display_name: "Cloud XXX Service Agent"
1748 # description: "Used as the identity of Cloud XXX to access resources"
1749 "displayName": "A String", # Optional. A user-specified name for the service account.
1750 # Must be less than or equal to 100 UTF-8 bytes.
1751 "description": "A String", # Optional. A user-specified opaque description of the service account.
1752 # Must be less than or equal to 256 UTF-8 bytes.
1753 "serviceAccountParent": "A String", # A service account project that hosts the service accounts.
1754 #
1755 # An example name would be:
1756 # `projects/123456789`
1757 },
1758 "producerNotificationChannel": "A String", # The full resource name of a channel used for sending notifications to the
1759 # service producer.
1760 #
1761 # Google Service Management currently only supports
1762 # [Google Cloud Pub/Sub](https://cloud.google.com/pubsub) as a notification
1763 # channel. To use Google Cloud Pub/Sub as the channel, this must be the name
1764 # of a Cloud Pub/Sub topic that uses the Cloud Pub/Sub topic name format
1765 # documented in https://cloud.google.com/pubsub/docs/overview.
1766 "requirements": [ # Requirements that must be satisfied before a consumer project can use the
1767 # service. Each requirement is of the form &lt;service.name&gt;/&lt;requirement-id&gt;;
1768 # for example 'serviceusage.googleapis.com/billing-enabled'.
1769 "A String",
1770 ],
1771 },
1772 "endpoints": [ # Configuration for network endpoints. Contains only the names and aliases
1773 # of the endpoints.
1774 { # `Endpoint` describes a network endpoint that serves a set of APIs.
1775 # A service may expose any number of endpoints, and all endpoints share the
1776 # same service configuration, such as quota configuration and monitoring
1777 # configuration.
1778 #
1779 # Example service configuration:
1780 #
1781 # name: library-example.googleapis.com
1782 # endpoints:
1783 # # Below entry makes 'google.example.library.v1.Library'
1784 # # API be served from endpoint address library-example.googleapis.com.
1785 # # It also allows HTTP OPTIONS calls to be passed to the backend, for
1786 # # it to decide whether the subsequent cross-origin request is
1787 # # allowed to proceed.
1788 # - name: library-example.googleapis.com
1789 # allow_cors: true
1790 "allowCors": True or False, # Allowing
1791 # [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka
1792 # cross-domain traffic, would allow the backends served from this endpoint to
1793 # receive and respond to HTTP OPTIONS requests. The response will be used by
1794 # the browser to determine whether the subsequent cross-origin request is
1795 # allowed to proceed.
1796 "target": "A String", # The specification of an Internet routable address of API frontend that will
1797 # handle requests to this [API
1798 # Endpoint](https://cloud.google.com/apis/design/glossary). It should be
1799 # either a valid IPv4 address or a fully-qualified domain name. For example,
1800 # "8.8.8.8" or "myservice.appspot.com".
1801 "features": [ # The list of features enabled on this endpoint.
1802 "A String",
1803 ],
1804 "name": "A String", # The canonical name of this endpoint.
1805 "aliases": [ # DEPRECATED: This field is no longer supported. Instead of using aliases,
1806 # please specify multiple google.api.Endpoint for each of the intended
1807 # aliases.
1808 #
1809 # Additional names that this endpoint will be hosted on.
1810 "A String",
1811 ],
1812 },
1813 ],
1814 },
1815 "name": "A String", # The resource name of the consumer and service.
1816 #
1817 # A valid name would be:
1818 # - projects/123/services/serviceusage.googleapis.com
1819 "parent": "A String", # The resource name of the consumer.
1820 #
1821 # A valid name would be:
1822 # - projects/123
1823 }</pre>
1824</div>
1825
1826<div class="method">
1827 <code class="details" id="list">list(parent, pageToken=None, x__xgafv=None, pageSize=None, filter=None)</code>
1828 <pre>List all services available to the specified project, and the current
1829state of those services with respect to the project. The list includes
1830all public services, all services for which the calling user has the
1831`servicemanagement.services.bind` permission, and all services that have
1832already been enabled on the project. The list can be filtered to
1833only include services in a specific state, for example to only include
1834services enabled on the project.
1835
1836Args:
1837 parent: string, Parent to search for services on.
1838
1839An example name would be:
1840`projects/123` where `123` is the project number. (required)
1841 pageToken: string, Token identifying which result to start with, which is returned by a
1842previous list call.
1843 x__xgafv: string, V1 error format.
1844 Allowed values
1845 1 - v1 error format
1846 2 - v2 error format
1847 pageSize: integer, Requested size of the next page of data.
1848Requested page size cannot exceed 200.
1849 If not set, the default page size is 50.
1850 filter: string, Only list services that conform to the given filter.
1851The allowed filter strings are `state:ENABLED` and `state:DISABLED`.
1852
1853Returns:
1854 An object of the form:
1855
1856 { # Response message for the `ListServices` method.
1857 "services": [ # The available services for the requested project.
1858 { # A service that is available for use by the consumer.
1859 "state": "A String", # Whether or not the service has been enabled for use by the consumer.
1860 "config": { # The configuration of the service. # The service configuration of the available service.
1861 # Some fields may be filtered out of the configuration in responses to
1862 # the `ListServices` method. These fields are present only in responses to
1863 # the `GetService` method.
1864 "name": "A String", # The DNS address at which this service is available.
1865 #
1866 # An example DNS address would be:
1867 # `calendar.googleapis.com`.
1868 "title": "A String", # The product title for this service.
1869 "documentation": { # `Documentation` provides the information for describing a service. # Additional API documentation. Contains only the summary and the
1870 # documentation URL.
1871 #
1872 # Example:
1873 # &lt;pre&gt;&lt;code&gt;documentation:
1874 # summary: &gt;
1875 # The Google Calendar API gives access
1876 # to most calendar features.
1877 # pages:
1878 # - name: Overview
1879 # content: &amp;#40;== include google/foo/overview.md ==&amp;#41;
1880 # - name: Tutorial
1881 # content: &amp;#40;== include google/foo/tutorial.md ==&amp;#41;
1882 # subpages;
1883 # - name: Java
1884 # content: &amp;#40;== include google/foo/tutorial_java.md ==&amp;#41;
1885 # rules:
1886 # - selector: google.calendar.Calendar.Get
1887 # description: &gt;
1888 # ...
1889 # - selector: google.calendar.Calendar.Put
1890 # description: &gt;
1891 # ...
1892 # &lt;/code&gt;&lt;/pre&gt;
1893 # Documentation is provided in markdown syntax. In addition to
1894 # standard markdown features, definition lists, tables and fenced
1895 # code blocks are supported. Section headers can be provided and are
1896 # interpreted relative to the section nesting of the context where
1897 # a documentation fragment is embedded.
1898 #
1899 # Documentation from the IDL is merged with documentation defined
1900 # via the config at normalization time, where documentation provided
1901 # by config rules overrides IDL provided.
1902 #
1903 # A number of constructs specific to the API platform are supported
1904 # in documentation text.
1905 #
1906 # In order to reference a proto element, the following
1907 # notation can be used:
1908 # &lt;pre&gt;&lt;code&gt;&amp;#91;fully.qualified.proto.name]&amp;#91;]&lt;/code&gt;&lt;/pre&gt;
1909 # To override the display text used for the link, this can be used:
1910 # &lt;pre&gt;&lt;code&gt;&amp;#91;display text]&amp;#91;fully.qualified.proto.name]&lt;/code&gt;&lt;/pre&gt;
1911 # Text can be excluded from doc using the following notation:
1912 # &lt;pre&gt;&lt;code&gt;&amp;#40;-- internal comment --&amp;#41;&lt;/code&gt;&lt;/pre&gt;
1913 #
1914 # A few directives are available in documentation. Note that
1915 # directives must appear on a single line to be properly
1916 # identified. The `include` directive includes a markdown file from
1917 # an external source:
1918 # &lt;pre&gt;&lt;code&gt;&amp;#40;== include path/to/file ==&amp;#41;&lt;/code&gt;&lt;/pre&gt;
1919 # The `resource_for` directive marks a message to be the resource of
1920 # a collection in REST view. If it is not specified, tools attempt
1921 # to infer the resource from the operations in a collection:
1922 # &lt;pre&gt;&lt;code&gt;&amp;#40;== resource_for v1.shelves.books ==&amp;#41;&lt;/code&gt;&lt;/pre&gt;
1923 # The directive `suppress_warning` does not directly affect documentation
1924 # and is documented together with service config validation.
1925 "rules": [ # A list of documentation rules that apply to individual API elements.
1926 #
1927 # **NOTE:** All service configuration rules follow "last one wins" order.
1928 { # A documentation rule provides information about individual API elements.
1929 "description": "A String", # Description of the selected API(s).
1930 "deprecationDescription": "A String", # Deprecation description of the selected element(s). It can be provided if
1931 # an element is marked as `deprecated`.
1932 "selector": "A String", # The selector is a comma-separated list of patterns. Each pattern is a
1933 # qualified name of the element which may end in "*", indicating a wildcard.
1934 # Wildcards are only allowed at the end and for a whole component of the
1935 # qualified name, i.e. "foo.*" is ok, but not "foo.b*" or "foo.*.bar". A
1936 # wildcard will match one or more components. To specify a default for all
1937 # applicable elements, the whole pattern "*" is used.
1938 },
1939 ],
1940 "documentationRootUrl": "A String", # The URL to the root of documentation.
1941 "summary": "A String", # A short summary of what the service does. Can only be provided by
1942 # plain text.
1943 "serviceRootUrl": "A String", # Specifies the service root url if the default one (the service name
1944 # from the yaml file) is not suitable. This can be seen in any fully
1945 # specified service urls as well as sections that show a base that other
1946 # urls are relative to.
1947 "overview": "A String", # Declares a single overview page. For example:
1948 # &lt;pre&gt;&lt;code&gt;documentation:
1949 # summary: ...
1950 # overview: &amp;#40;== include overview.md ==&amp;#41;
1951 # &lt;/code&gt;&lt;/pre&gt;
1952 # This is a shortcut for the following declaration (using pages style):
1953 # &lt;pre&gt;&lt;code&gt;documentation:
1954 # summary: ...
1955 # pages:
1956 # - name: Overview
1957 # content: &amp;#40;== include overview.md ==&amp;#41;
1958 # &lt;/code&gt;&lt;/pre&gt;
1959 # Note: you cannot specify both `overview` field and `pages` field.
1960 "pages": [ # The top level pages for the documentation set.
1961 { # Represents a documentation page. A page can contain subpages to represent
1962 # nested documentation set structure.
1963 "content": "A String", # The Markdown content of the page. You can use &lt;code&gt;&amp;#40;== include {path}
1964 # ==&amp;#41;&lt;/code&gt; to include content from a Markdown file.
1965 "subpages": [ # Subpages of this page. The order of subpages specified here will be
1966 # honored in the generated docset.
1967 # Object with schema name: Page
1968 ],
1969 "name": "A String", # The name of the page. It will be used as an identity of the page to
1970 # generate URI of the page, text of the link to this page in navigation,
1971 # etc. The full page name (start from the root page name to this page
1972 # concatenated with `.`) can be used as reference to the page in your
1973 # documentation. For example:
1974 # &lt;pre&gt;&lt;code&gt;pages:
1975 # - name: Tutorial
1976 # content: &amp;#40;== include tutorial.md ==&amp;#41;
1977 # subpages:
1978 # - name: Java
1979 # content: &amp;#40;== include tutorial_java.md ==&amp;#41;
1980 # &lt;/code&gt;&lt;/pre&gt;
1981 # You can reference `Java` page using Markdown reference link syntax:
1982 # `Java`.
1983 },
1984 ],
1985 },
1986 "quota": { # Quota configuration helps to achieve fairness and budgeting in service # Quota configuration.
1987 # usage.
1988 #
1989 # The metric based quota configuration works this way:
1990 # - The service configuration defines a set of metrics.
1991 # - For API calls, the quota.metric_rules maps methods to metrics with
1992 # corresponding costs.
1993 # - The quota.limits defines limits on the metrics, which will be used for
1994 # quota checks at runtime.
1995 #
1996 # An example quota configuration in yaml format:
1997 #
1998 # quota:
1999 # limits:
2000 #
2001 # - name: apiWriteQpsPerProject
2002 # metric: library.googleapis.com/write_calls
2003 # unit: "1/min/{project}" # rate limit for consumer projects
2004 # values:
2005 # STANDARD: 10000
2006 #
2007 #
2008 # # The metric rules bind all methods to the read_calls metric,
2009 # # except for the UpdateBook and DeleteBook methods. These two methods
2010 # # are mapped to the write_calls metric, with the UpdateBook method
2011 # # consuming at twice rate as the DeleteBook method.
2012 # metric_rules:
2013 # - selector: "*"
2014 # metric_costs:
2015 # library.googleapis.com/read_calls: 1
2016 # - selector: google.example.library.v1.LibraryService.UpdateBook
2017 # metric_costs:
2018 # library.googleapis.com/write_calls: 2
2019 # - selector: google.example.library.v1.LibraryService.DeleteBook
2020 # metric_costs:
2021 # library.googleapis.com/write_calls: 1
2022 #
2023 # Corresponding Metric definition:
2024 #
2025 # metrics:
2026 # - name: library.googleapis.com/read_calls
2027 # display_name: Read requests
2028 # metric_kind: DELTA
2029 # value_type: INT64
2030 #
2031 # - name: library.googleapis.com/write_calls
2032 # display_name: Write requests
2033 # metric_kind: DELTA
2034 # value_type: INT64
2035 #
2036 "metricRules": [ # List of `MetricRule` definitions, each one mapping a selected method to one
2037 # or more metrics.
2038 { # Bind API methods to metrics. Binding a method to a metric causes that
2039 # metric's configured quota behaviors to apply to the method call.
2040 "metricCosts": { # Metrics to update when the selected methods are called, and the associated
2041 # cost applied to each metric.
2042 #
2043 # The key of the map is the metric name, and the values are the amount
2044 # increased for the metric against which the quota limits are defined.
2045 # The value must not be negative.
2046 "a_key": "A String",
2047 },
2048 "selector": "A String", # Selects the methods to which this rule applies.
2049 #
2050 # Refer to selector for syntax details.
2051 },
2052 ],
2053 "limits": [ # List of `QuotaLimit` definitions for the service.
2054 { # `QuotaLimit` defines a specific limit that applies over a specified duration
2055 # for a limit type. There can be at most one limit for a duration and limit
2056 # type combination defined within a `QuotaGroup`.
2057 "displayName": "A String", # User-visible display name for this limit.
2058 # Optional. If not set, the UI will provide a default display name based on
2059 # the quota configuration. This field can be used to override the default
2060 # display name generated from the configuration.
2061 "description": "A String", # Optional. User-visible, extended description for this quota limit.
2062 # Should be used only when more context is needed to understand this limit
2063 # than provided by the limit's display name (see: `display_name`).
2064 "defaultLimit": "A String", # Default number of tokens that can be consumed during the specified
2065 # duration. This is the number of tokens assigned when a client
2066 # application developer activates the service for his/her project.
2067 #
2068 # Specifying a value of 0 will block all requests. This can be used if you
2069 # are provisioning quota to selected consumers and blocking others.
2070 # Similarly, a value of -1 will indicate an unlimited quota. No other
2071 # negative values are allowed.
2072 #
2073 # Used by group-based quotas only.
2074 "metric": "A String", # The name of the metric this quota limit applies to. The quota limits with
2075 # the same metric will be checked together during runtime. The metric must be
2076 # defined within the service config.
2077 "values": { # Tiered limit values. You must specify this as a key:value pair, with an
2078 # integer value that is the maximum number of requests allowed for the
2079 # specified unit. Currently only STANDARD is supported.
2080 "a_key": "A String",
2081 },
2082 "maxLimit": "A String", # Maximum number of tokens that can be consumed during the specified
2083 # duration. Client application developers can override the default limit up
2084 # to this maximum. If specified, this value cannot be set to a value less
2085 # than the default limit. If not specified, it is set to the default limit.
2086 #
2087 # To allow clients to apply overrides with no upper bound, set this to -1,
2088 # indicating unlimited maximum quota.
2089 #
2090 # Used by group-based quotas only.
2091 "duration": "A String", # Duration of this limit in textual notation. Must be "100s" or "1d".
2092 #
2093 # Used by group-based quotas only.
2094 "freeTier": "A String", # Free tier value displayed in the Developers Console for this limit.
2095 # The free tier is the number of tokens that will be subtracted from the
2096 # billed amount when billing is enabled.
2097 # This field can only be set on a limit with duration "1d", in a billable
2098 # group; it is invalid on any other limit. If this field is not set, it
2099 # defaults to 0, indicating that there is no free tier for this service.
2100 #
2101 # Used by group-based quotas only.
2102 "unit": "A String", # Specify the unit of the quota limit. It uses the same syntax as
2103 # Metric.unit. The supported unit kinds are determined by the quota
2104 # backend system.
2105 #
2106 # Here are some examples:
2107 # * "1/min/{project}" for quota per minute per project.
2108 #
2109 # Note: the order of unit components is insignificant.
2110 # The "1" at the beginning is required to follow the metric unit syntax.
2111 "name": "A String", # Name of the quota limit.
2112 #
2113 # The name must be provided, and it must be unique within the service. The
2114 # name can only include alphanumeric characters as well as '-'.
2115 #
2116 # The maximum length of the limit name is 64 characters.
2117 },
2118 ],
2119 },
2120 "apis": [ # A list of API interfaces exported by this service. Contains only the names,
2121 # versions, and method names of the interfaces.
2122 { # Api is a light-weight descriptor for an API Interface.
2123 #
2124 # Interfaces are also described as "protocol buffer services" in some contexts,
2125 # such as by the "service" keyword in a .proto file, but they are different
2126 # from API Services, which represent a concrete implementation of an interface
2127 # as opposed to simply a description of methods and bindings. They are also
2128 # sometimes simply referred to as "APIs" in other contexts, such as the name of
2129 # this message itself. See https://cloud.google.com/apis/design/glossary for
2130 # detailed terminology.
2131 "name": "A String", # The fully qualified name of this interface, including package name
2132 # followed by the interface's simple name.
2133 "sourceContext": { # `SourceContext` represents information about the source of a # Source context for the protocol buffer service represented by this
2134 # message.
2135 # protobuf element, like the file in which it is defined.
2136 "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
2137 # protobuf element. For example: `"google/protobuf/source_context.proto"`.
2138 },
2139 "mixins": [ # Included interfaces. See Mixin.
2140 { # Declares an API Interface to be included in this interface. The including
2141 # interface must redeclare all the methods from the included interface, but
2142 # documentation and options are inherited as follows:
2143 #
2144 # - If after comment and whitespace stripping, the documentation
2145 # string of the redeclared method is empty, it will be inherited
2146 # from the original method.
2147 #
2148 # - Each annotation belonging to the service config (http,
2149 # visibility) which is not set in the redeclared method will be
2150 # inherited.
2151 #
2152 # - If an http annotation is inherited, the path pattern will be
2153 # modified as follows. Any version prefix will be replaced by the
2154 # version of the including interface plus the root path if
2155 # specified.
2156 #
2157 # Example of a simple mixin:
2158 #
2159 # package google.acl.v1;
2160 # service AccessControl {
2161 # // Get the underlying ACL object.
2162 # rpc GetAcl(GetAclRequest) returns (Acl) {
2163 # option (google.api.http).get = "/v1/{resource=**}:getAcl";
2164 # }
2165 # }
2166 #
2167 # package google.storage.v2;
2168 # service Storage {
2169 # // rpc GetAcl(GetAclRequest) returns (Acl);
2170 #
2171 # // Get a data record.
2172 # rpc GetData(GetDataRequest) returns (Data) {
2173 # option (google.api.http).get = "/v2/{resource=**}";
2174 # }
2175 # }
2176 #
2177 # Example of a mixin configuration:
2178 #
2179 # apis:
2180 # - name: google.storage.v2.Storage
2181 # mixins:
2182 # - name: google.acl.v1.AccessControl
2183 #
2184 # The mixin construct implies that all methods in `AccessControl` are
2185 # also declared with same name and request/response types in
2186 # `Storage`. A documentation generator or annotation processor will
2187 # see the effective `Storage.GetAcl` method after inherting
2188 # documentation and annotations as follows:
2189 #
2190 # service Storage {
2191 # // Get the underlying ACL object.
2192 # rpc GetAcl(GetAclRequest) returns (Acl) {
2193 # option (google.api.http).get = "/v2/{resource=**}:getAcl";
2194 # }
2195 # ...
2196 # }
2197 #
2198 # Note how the version in the path pattern changed from `v1` to `v2`.
2199 #
2200 # If the `root` field in the mixin is specified, it should be a
2201 # relative path under which inherited HTTP paths are placed. Example:
2202 #
2203 # apis:
2204 # - name: google.storage.v2.Storage
2205 # mixins:
2206 # - name: google.acl.v1.AccessControl
2207 # root: acls
2208 #
2209 # This implies the following inherited HTTP annotation:
2210 #
2211 # service Storage {
2212 # // Get the underlying ACL object.
2213 # rpc GetAcl(GetAclRequest) returns (Acl) {
2214 # option (google.api.http).get = "/v2/acls/{resource=**}:getAcl";
2215 # }
2216 # ...
2217 # }
2218 "root": "A String", # If non-empty specifies a path under which inherited HTTP paths
2219 # are rooted.
2220 "name": "A String", # The fully qualified name of the interface which is included.
2221 },
2222 ],
2223 "syntax": "A String", # The source syntax of the service.
2224 "version": "A String", # A version string for this interface. If specified, must have the form
2225 # `major-version.minor-version`, as in `1.10`. If the minor version is
2226 # omitted, it defaults to zero. If the entire version field is empty, the
2227 # major version is derived from the package name, as outlined below. If the
2228 # field is not empty, the version in the package name will be verified to be
2229 # consistent with what is provided here.
2230 #
2231 # The versioning schema uses [semantic
2232 # versioning](http://semver.org) where the major version number
2233 # indicates a breaking change and the minor version an additive,
2234 # non-breaking change. Both version numbers are signals to users
2235 # what to expect from different versions, and should be carefully
2236 # chosen based on the product plan.
2237 #
2238 # The major version is also reflected in the package name of the
2239 # interface, which must end in `v&lt;major-version&gt;`, as in
2240 # `google.feature.v1`. For major versions 0 and 1, the suffix can
2241 # be omitted. Zero major versions must only be used for
2242 # experimental, non-GA interfaces.
2243 "options": [ # Any metadata attached to the interface.
2244 { # A protocol buffer option, which can be attached to a message, field,
2245 # enumeration, etc.
2246 "name": "A String", # The option's name. For protobuf built-in options (options defined in
2247 # descriptor.proto), this is the short name. For example, `"map_entry"`.
2248 # For custom options, it should be the fully-qualified name. For example,
2249 # `"google.api.http"`.
2250 "value": { # The option's value packed in an Any message. If the value is a primitive,
2251 # the corresponding wrapper type defined in google/protobuf/wrappers.proto
2252 # should be used. If the value is an enum, it should be stored as an int32
2253 # value using the google.protobuf.Int32Value type.
2254 "a_key": "", # Properties of the object. Contains field @type with type URL.
2255 },
2256 },
2257 ],
2258 "methods": [ # The methods of this interface, in unspecified order.
2259 { # Method represents a method of an API interface.
2260 "name": "A String", # The simple name of this method.
2261 "requestStreaming": True or False, # If true, the request is streamed.
2262 "responseTypeUrl": "A String", # The URL of the output message type.
2263 "requestTypeUrl": "A String", # A URL of the input message type.
2264 "responseStreaming": True or False, # If true, the response is streamed.
2265 "syntax": "A String", # The source syntax of this method.
2266 "options": [ # Any metadata attached to the method.
2267 { # A protocol buffer option, which can be attached to a message, field,
2268 # enumeration, etc.
2269 "name": "A String", # The option's name. For protobuf built-in options (options defined in
2270 # descriptor.proto), this is the short name. For example, `"map_entry"`.
2271 # For custom options, it should be the fully-qualified name. For example,
2272 # `"google.api.http"`.
2273 "value": { # The option's value packed in an Any message. If the value is a primitive,
2274 # the corresponding wrapper type defined in google/protobuf/wrappers.proto
2275 # should be used. If the value is an enum, it should be stored as an int32
2276 # value using the google.protobuf.Int32Value type.
2277 "a_key": "", # Properties of the object. Contains field @type with type URL.
2278 },
2279 },
2280 ],
2281 },
2282 ],
2283 },
2284 ],
2285 "authentication": { # `Authentication` defines the authentication configuration for an API. # Auth configuration. Contains only the OAuth rules.
2286 #
2287 # Example for an API targeted for external use:
2288 #
2289 # name: calendar.googleapis.com
2290 # authentication:
2291 # providers:
2292 # - id: google_calendar_auth
2293 # jwks_uri: https://www.googleapis.com/oauth2/v1/certs
2294 # issuer: https://securetoken.google.com
2295 # rules:
2296 # - selector: "*"
2297 # requirements:
2298 # provider_id: google_calendar_auth
2299 "rules": [ # A list of authentication rules that apply to individual API methods.
2300 #
2301 # **NOTE:** All service configuration rules follow "last one wins" order.
2302 { # Authentication rules for the service.
2303 #
2304 # By default, if a method has any authentication requirements, every request
2305 # must include a valid credential matching one of the requirements.
2306 # It's an error to include more than one kind of credential in a single
2307 # request.
2308 #
2309 # If a method doesn't have any auth requirements, request credentials will be
2310 # ignored.
2311 "oauth": { # OAuth scopes are a way to define data and permissions on data. For example, # The requirements for OAuth credentials.
2312 # there are scopes defined for "Read-only access to Google Calendar" and
2313 # "Access to Cloud Platform". Users can consent to a scope for an application,
2314 # giving it permission to access that data on their behalf.
2315 #
2316 # OAuth scope specifications should be fairly coarse grained; a user will need
2317 # to see and understand the text description of what your scope means.
2318 #
2319 # In most cases: use one or at most two OAuth scopes for an entire family of
2320 # products. If your product has multiple APIs, you should probably be sharing
2321 # the OAuth scope across all of those APIs.
2322 #
2323 # When you need finer grained OAuth consent screens: talk with your product
2324 # management about how developers will use them in practice.
2325 #
2326 # Please note that even though each of the canonical scopes is enough for a
2327 # request to be accepted and passed to the backend, a request can still fail
2328 # due to the backend requiring additional scopes or permissions.
2329 "canonicalScopes": "A String", # The list of publicly documented OAuth scopes that are allowed access. An
2330 # OAuth token containing any of these scopes will be accepted.
2331 #
2332 # Example:
2333 #
2334 # canonical_scopes: https://www.googleapis.com/auth/calendar,
2335 # https://www.googleapis.com/auth/calendar.read
2336 },
2337 "allowWithoutCredential": True or False, # If true, the service accepts API keys without any other credential.
2338 "requirements": [ # Requirements for additional authentication providers.
2339 { # User-defined authentication requirements, including support for
2340 # [JSON Web Token
2341 # (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
2342 "providerId": "A String", # id from authentication provider.
2343 #
2344 # Example:
2345 #
2346 # provider_id: bookstore_auth
2347 "audiences": "A String", # NOTE: This will be deprecated soon, once AuthProvider.audiences is
2348 # implemented and accepted in all the runtime components.
2349 #
2350 # The list of JWT
2351 # [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).
2352 # that are allowed to access. A JWT containing any of these audiences will
2353 # be accepted. When this setting is absent, only JWTs with audience
2354 # "https://Service_name/API_name"
2355 # will be accepted. For example, if no audiences are in the setting,
2356 # LibraryService API will only accept JWTs with the following audience
2357 # "https://library-example.googleapis.com/google.example.library.v1.LibraryService".
2358 #
2359 # Example:
2360 #
2361 # audiences: bookstore_android.apps.googleusercontent.com,
2362 # bookstore_web.apps.googleusercontent.com
2363 },
2364 ],
2365 "selector": "A String", # Selects the methods to which this rule applies.
2366 #
2367 # Refer to selector for syntax details.
2368 },
2369 ],
2370 "providers": [ # Defines a set of authentication providers that a service supports.
2371 { # Configuration for an authentication provider, including support for
2372 # [JSON Web Token
2373 # (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
2374 "jwtLocations": [ # Defines the locations to extract the JWT.
2375 #
2376 # JWT locations can be either from HTTP headers or URL query parameters.
2377 # The rule is that the first match wins. The checking order is: checking
2378 # all headers first, then URL query parameters.
2379 #
2380 # If not specified, default to use following 3 locations:
2381 # 1) Authorization: Bearer
2382 # 2) x-goog-iap-jwt-assertion
2383 # 3) access_token query parameter
2384 #
2385 # Default locations can be specified as followings:
2386 # jwt_locations:
2387 # - header: Authorization
2388 # value_prefix: "Bearer "
2389 # - header: x-goog-iap-jwt-assertion
2390 # - query: access_token
2391 { # Specifies a location to extract JWT from an API request.
2392 "query": "A String", # Specifies URL query parameter name to extract JWT token.
2393 "valuePrefix": "A String", # The value prefix. The value format is "value_prefix{token}"
2394 # Only applies to "in" header type. Must be empty for "in" query type.
2395 # If not empty, the header value has to match (case sensitive) this prefix.
2396 # If not matched, JWT will not be extracted. If matched, JWT will be
2397 # extracted after the prefix is removed.
2398 #
2399 # For example, for "Authorization: Bearer {JWT}",
2400 # value_prefix="Bearer " with a space at the end.
2401 "header": "A String", # Specifies HTTP header name to extract JWT token.
2402 },
2403 ],
2404 "audiences": "A String", # The list of JWT
2405 # [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).
2406 # that are allowed to access. A JWT containing any of these audiences will
2407 # be accepted. When this setting is absent, JWTs with audiences:
2408 # - "https://[service.name]/[google.protobuf.Api.name]"
2409 # - "https://[service.name]/"
2410 # will be accepted.
2411 # For example, if no audiences are in the setting, LibraryService API will
2412 # accept JWTs with the following audiences:
2413 # -
2414 # https://library-example.googleapis.com/google.example.library.v1.LibraryService
2415 # - https://library-example.googleapis.com/
2416 #
2417 # Example:
2418 #
2419 # audiences: bookstore_android.apps.googleusercontent.com,
2420 # bookstore_web.apps.googleusercontent.com
2421 "jwksUri": "A String", # URL of the provider's public key set to validate signature of the JWT. See
2422 # [OpenID
2423 # Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata).
2424 # Optional if the key set document:
2425 # - can be retrieved from
2426 # [OpenID
2427 # Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html of
2428 # the issuer.
2429 # - can be inferred from the email domain of the issuer (e.g. a Google
2430 # service account).
2431 #
2432 # Example: https://www.googleapis.com/oauth2/v1/certs
2433 "id": "A String", # The unique identifier of the auth provider. It will be referred to by
2434 # `AuthRequirement.provider_id`.
2435 #
2436 # Example: "bookstore_auth".
2437 "authorizationUrl": "A String", # Redirect URL if JWT token is required but not present or is expired.
2438 # Implement authorizationUrl of securityDefinitions in OpenAPI spec.
2439 "issuer": "A String", # Identifies the principal that issued the JWT. See
2440 # https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.1
2441 # Usually a URL or an email address.
2442 #
2443 # Example: https://securetoken.google.com
2444 # Example: 1234567-compute@developer.gserviceaccount.com
2445 },
2446 ],
2447 },
2448 "usage": { # Configuration controlling usage of a service. # Configuration controlling usage of this service.
2449 "rules": [ # A list of usage rules that apply to individual API methods.
2450 #
2451 # **NOTE:** All service configuration rules follow "last one wins" order.
2452 { # Usage configuration rules for the service.
2453 #
2454 # NOTE: Under development.
2455 #
2456 #
2457 # Use this rule to configure unregistered calls for the service. Unregistered
2458 # calls are calls that do not contain consumer project identity.
2459 # (Example: calls that do not contain an API key).
2460 # By default, API methods do not allow unregistered calls, and each method call
2461 # must be identified by a consumer project identity. Use this rule to
2462 # allow/disallow unregistered calls.
2463 #
2464 # Example of an API that wants to allow unregistered calls for entire service.
2465 #
2466 # usage:
2467 # rules:
2468 # - selector: "*"
2469 # allow_unregistered_calls: true
2470 #
2471 # Example of a method that wants to allow unregistered calls.
2472 #
2473 # usage:
2474 # rules:
2475 # - selector: "google.example.library.v1.LibraryService.CreateBook"
2476 # allow_unregistered_calls: true
2477 "selector": "A String", # Selects the methods to which this rule applies. Use '*' to indicate all
2478 # methods in all APIs.
2479 #
2480 # Refer to selector for syntax details.
2481 "skipServiceControl": True or False, # If true, the selected method should skip service control and the control
2482 # plane features, such as quota and billing, will not be available.
2483 # This flag is used by Google Cloud Endpoints to bypass checks for internal
2484 # methods, such as service health check methods.
2485 "allowUnregisteredCalls": True or False, # If true, the selected method allows unregistered calls, e.g. calls
2486 # that don't identify any user or application.
2487 },
2488 ],
2489 "serviceIdentity": { # The per-product per-project service identity for a service. # The configuration of a per-product per-project service identity.
2490 #
2491 #
2492 # Use this field to configure per-product per-project service identity.
2493 # Example of a service identity configuration.
2494 #
2495 # usage:
2496 # service_identity:
2497 # - service_account_parent: "projects/123456789"
2498 # display_name: "Cloud XXX Service Agent"
2499 # description: "Used as the identity of Cloud XXX to access resources"
2500 "displayName": "A String", # Optional. A user-specified name for the service account.
2501 # Must be less than or equal to 100 UTF-8 bytes.
2502 "description": "A String", # Optional. A user-specified opaque description of the service account.
2503 # Must be less than or equal to 256 UTF-8 bytes.
2504 "serviceAccountParent": "A String", # A service account project that hosts the service accounts.
2505 #
2506 # An example name would be:
2507 # `projects/123456789`
2508 },
2509 "producerNotificationChannel": "A String", # The full resource name of a channel used for sending notifications to the
2510 # service producer.
2511 #
2512 # Google Service Management currently only supports
2513 # [Google Cloud Pub/Sub](https://cloud.google.com/pubsub) as a notification
2514 # channel. To use Google Cloud Pub/Sub as the channel, this must be the name
2515 # of a Cloud Pub/Sub topic that uses the Cloud Pub/Sub topic name format
2516 # documented in https://cloud.google.com/pubsub/docs/overview.
2517 "requirements": [ # Requirements that must be satisfied before a consumer project can use the
2518 # service. Each requirement is of the form &lt;service.name&gt;/&lt;requirement-id&gt;;
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002519 # for example 'serviceusage.googleapis.com/billing-enabled'.
2520 "A String",
2521 ],
2522 },
2523 "endpoints": [ # Configuration for network endpoints. Contains only the names and aliases
2524 # of the endpoints.
2525 { # `Endpoint` describes a network endpoint that serves a set of APIs.
2526 # A service may expose any number of endpoints, and all endpoints share the
2527 # same service configuration, such as quota configuration and monitoring
2528 # configuration.
2529 #
2530 # Example service configuration:
2531 #
2532 # name: library-example.googleapis.com
2533 # endpoints:
2534 # # Below entry makes 'google.example.library.v1.Library'
2535 # # API be served from endpoint address library-example.googleapis.com.
2536 # # It also allows HTTP OPTIONS calls to be passed to the backend, for
2537 # # it to decide whether the subsequent cross-origin request is
2538 # # allowed to proceed.
2539 # - name: library-example.googleapis.com
2540 # allow_cors: true
2541 "allowCors": True or False, # Allowing
2542 # [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka
2543 # cross-domain traffic, would allow the backends served from this endpoint to
2544 # receive and respond to HTTP OPTIONS requests. The response will be used by
2545 # the browser to determine whether the subsequent cross-origin request is
2546 # allowed to proceed.
2547 "target": "A String", # The specification of an Internet routable address of API frontend that will
2548 # handle requests to this [API
2549 # Endpoint](https://cloud.google.com/apis/design/glossary). It should be
2550 # either a valid IPv4 address or a fully-qualified domain name. For example,
2551 # "8.8.8.8" or "myservice.appspot.com".
2552 "features": [ # The list of features enabled on this endpoint.
2553 "A String",
2554 ],
2555 "name": "A String", # The canonical name of this endpoint.
2556 "aliases": [ # DEPRECATED: This field is no longer supported. Instead of using aliases,
2557 # please specify multiple google.api.Endpoint for each of the intended
2558 # aliases.
2559 #
2560 # Additional names that this endpoint will be hosted on.
2561 "A String",
2562 ],
2563 },
2564 ],
2565 },
2566 "name": "A String", # The resource name of the consumer and service.
2567 #
2568 # A valid name would be:
2569 # - projects/123/services/serviceusage.googleapis.com
2570 "parent": "A String", # The resource name of the consumer.
2571 #
2572 # A valid name would be:
2573 # - projects/123
2574 },
2575 ],
2576 "nextPageToken": "A String", # Token that can be passed to `ListServices` to resume a paginated
2577 # query.
2578 }</pre>
2579</div>
2580
2581<div class="method">
2582 <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
2583 <pre>Retrieves the next page of results.
2584
2585Args:
2586 previous_request: The request for the previous page. (required)
2587 previous_response: The response from the request for the previous page. (required)
2588
2589Returns:
2590 A request object that you can call 'execute()' on to request the next
2591 page. Returns None if there are no more items in the collection.
2592 </pre>
2593</div>
2594
2595</body></html>