blob: e74f34be2611cf5cfca40a5d654a26eba5591baa [file] [log] [blame]
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001<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="serviceuser_v1.html">Google Service User API</a> . <a href="serviceuser_v1.projects.html">projects</a> . <a href="serviceuser_v1.projects.services.html">services</a></h1>
76<h2>Instance Methods</h2>
77<p class="toc_element">
78 <code><a href="#disable">disable(name=None, body, x__xgafv=None)</a></code></p>
79<p class="firstline">Disable a service so it can no longer be used with a</p>
80<p class="toc_element">
81 <code><a href="#enable">enable(name=None, body, x__xgafv=None)</a></code></p>
82<p class="firstline">Enable a service so it can be used with a project.</p>
83<p class="toc_element">
84 <code><a href="#list">list(parent=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
85<p class="firstline">List enabled services for the specified consumer.</p>
86<p class="toc_element">
87 <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
88<p class="firstline">Retrieves the next page of results.</p>
89<h3>Method Details</h3>
90<div class="method">
91 <code class="details" id="disable">disable(name=None, body, x__xgafv=None)</code>
92 <pre>Disable a service so it can no longer be used with a
93project. This prevents unintended usage that may cause unexpected billing
94charges or security leaks.
95
96Operation<response: google.protobuf.Empty>
97
98Args:
99 name: string, Name of the consumer and the service to disable for that consumer.
100
101The Service User implementation accepts the following forms for consumer:
102- "project:<project_id>"
103
104A valid path would be:
105- /v1/projects/my-project/services/servicemanagement.googleapis.com:disable (required)
106 body: object, The request body. (required)
107 The object takes the form of:
108
109{ # Request message for DisableService method.
110 }
111
112 x__xgafv: string, V1 error format.
113 Allowed values
114 1 - v1 error format
115 2 - v2 error format
116
117Returns:
118 An object of the form:
119
120 { # This resource represents a long-running operation that is the result of a
121 # network API call.
122 "metadata": { # Service-specific metadata associated with the operation. It typically
123 # contains progress information and common metadata such as create time.
124 # Some services might not provide such metadata. Any method that returns a
125 # long-running operation should document the metadata type, if any.
126 "a_key": "", # Properties of the object. Contains field @type with type URL.
127 },
128 "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
129 # programming environments, including REST APIs and RPC APIs. It is used by
130 # [gRPC](https://github.com/grpc). The error model is designed to be:
131 #
132 # - Simple to use and understand for most users
133 # - Flexible enough to meet unexpected needs
134 #
135 # # Overview
136 #
137 # The `Status` message contains three pieces of data: error code, error message,
138 # and error details. The error code should be an enum value of
139 # google.rpc.Code, but it may accept additional error codes if needed. The
140 # error message should be a developer-facing English message that helps
141 # developers *understand* and *resolve* the error. If a localized user-facing
142 # error message is needed, put the localized message in the error details or
143 # localize it in the client. The optional error details may contain arbitrary
144 # information about the error. There is a predefined set of error detail types
145 # in the package `google.rpc` which can be used for common error conditions.
146 #
147 # # Language mapping
148 #
149 # The `Status` message is the logical representation of the error model, but it
150 # is not necessarily the actual wire format. When the `Status` message is
151 # exposed in different client libraries and different wire protocols, it can be
152 # mapped differently. For example, it will likely be mapped to some exceptions
153 # in Java, but more likely mapped to some error codes in C.
154 #
155 # # Other uses
156 #
157 # The error model and the `Status` message can be used in a variety of
158 # environments, either with or without APIs, to provide a
159 # consistent developer experience across different environments.
160 #
161 # Example uses of this error model include:
162 #
163 # - Partial errors. If a service needs to return partial errors to the client,
164 # it may embed the `Status` in the normal response to indicate the partial
165 # errors.
166 #
167 # - Workflow errors. A typical workflow has multiple steps. Each step may
168 # have a `Status` message for error reporting purpose.
169 #
170 # - Batch operations. If a client uses batch request and batch response, the
171 # `Status` message should be used directly inside batch response, one for
172 # each error sub-response.
173 #
174 # - Asynchronous operations. If an API call embeds asynchronous operation
175 # results in its response, the status of those operations should be
176 # represented directly using the `Status` message.
177 #
178 # - Logging. If some API errors are stored in logs, the message `Status` could
179 # be used directly after any stripping needed for security/privacy reasons.
180 "message": "A String", # A developer-facing error message, which should be in English. Any
181 # user-facing error message should be localized and sent in the
182 # google.rpc.Status.details field, or localized by the client.
183 "code": 42, # The status code, which should be an enum value of google.rpc.Code.
184 "details": [ # A list of messages that carry the error details. There will be a
185 # common set of message types for APIs to use.
186 {
187 "a_key": "", # Properties of the object. Contains field @type with type URL.
188 },
189 ],
190 },
191 "done": True or False, # If the value is `false`, it means the operation is still in progress.
192 # If true, the operation is completed, and either `error` or `response` is
193 # available.
194 "response": { # The normal response of the operation in case of success. If the original
195 # method returns no data on success, such as `Delete`, the response is
196 # `google.protobuf.Empty`. If the original method is standard
197 # `Get`/`Create`/`Update`, the response should be the resource. For other
198 # methods, the response should have the type `XxxResponse`, where `Xxx`
199 # is the original method name. For example, if the original method name
200 # is `TakeSnapshot()`, the inferred response type is
201 # `TakeSnapshotResponse`.
202 "a_key": "", # Properties of the object. Contains field @type with type URL.
203 },
204 "name": "A String", # The server-assigned name, which is only unique within the same service that
205 # originally returns it. If you use the default HTTP mapping, the
206 # `name` should have the format of `operations/some/unique/name`.
207 }</pre>
208</div>
209
210<div class="method">
211 <code class="details" id="enable">enable(name=None, body, x__xgafv=None)</code>
212 <pre>Enable a service so it can be used with a project.
213See [Cloud Auth Guide](https://cloud.google.com/docs/authentication) for
214more information.
215
216Operation<response: google.protobuf.Empty>
217
218Args:
219 name: string, Name of the consumer and the service to enable for that consumer.
220
221A valid path would be:
222- /v1/projects/my-project/services/servicemanagement.googleapis.com:enable (required)
223 body: object, The request body. (required)
224 The object takes the form of:
225
226{ # Request message for EnableService method.
227 }
228
229 x__xgafv: string, V1 error format.
230 Allowed values
231 1 - v1 error format
232 2 - v2 error format
233
234Returns:
235 An object of the form:
236
237 { # This resource represents a long-running operation that is the result of a
238 # network API call.
239 "metadata": { # Service-specific metadata associated with the operation. It typically
240 # contains progress information and common metadata such as create time.
241 # Some services might not provide such metadata. Any method that returns a
242 # long-running operation should document the metadata type, if any.
243 "a_key": "", # Properties of the object. Contains field @type with type URL.
244 },
245 "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
246 # programming environments, including REST APIs and RPC APIs. It is used by
247 # [gRPC](https://github.com/grpc). The error model is designed to be:
248 #
249 # - Simple to use and understand for most users
250 # - Flexible enough to meet unexpected needs
251 #
252 # # Overview
253 #
254 # The `Status` message contains three pieces of data: error code, error message,
255 # and error details. The error code should be an enum value of
256 # google.rpc.Code, but it may accept additional error codes if needed. The
257 # error message should be a developer-facing English message that helps
258 # developers *understand* and *resolve* the error. If a localized user-facing
259 # error message is needed, put the localized message in the error details or
260 # localize it in the client. The optional error details may contain arbitrary
261 # information about the error. There is a predefined set of error detail types
262 # in the package `google.rpc` which can be used for common error conditions.
263 #
264 # # Language mapping
265 #
266 # The `Status` message is the logical representation of the error model, but it
267 # is not necessarily the actual wire format. When the `Status` message is
268 # exposed in different client libraries and different wire protocols, it can be
269 # mapped differently. For example, it will likely be mapped to some exceptions
270 # in Java, but more likely mapped to some error codes in C.
271 #
272 # # Other uses
273 #
274 # The error model and the `Status` message can be used in a variety of
275 # environments, either with or without APIs, to provide a
276 # consistent developer experience across different environments.
277 #
278 # Example uses of this error model include:
279 #
280 # - Partial errors. If a service needs to return partial errors to the client,
281 # it may embed the `Status` in the normal response to indicate the partial
282 # errors.
283 #
284 # - Workflow errors. A typical workflow has multiple steps. Each step may
285 # have a `Status` message for error reporting purpose.
286 #
287 # - Batch operations. If a client uses batch request and batch response, the
288 # `Status` message should be used directly inside batch response, one for
289 # each error sub-response.
290 #
291 # - Asynchronous operations. If an API call embeds asynchronous operation
292 # results in its response, the status of those operations should be
293 # represented directly using the `Status` message.
294 #
295 # - Logging. If some API errors are stored in logs, the message `Status` could
296 # be used directly after any stripping needed for security/privacy reasons.
297 "message": "A String", # A developer-facing error message, which should be in English. Any
298 # user-facing error message should be localized and sent in the
299 # google.rpc.Status.details field, or localized by the client.
300 "code": 42, # The status code, which should be an enum value of google.rpc.Code.
301 "details": [ # A list of messages that carry the error details. There will be a
302 # common set of message types for APIs to use.
303 {
304 "a_key": "", # Properties of the object. Contains field @type with type URL.
305 },
306 ],
307 },
308 "done": True or False, # If the value is `false`, it means the operation is still in progress.
309 # If true, the operation is completed, and either `error` or `response` is
310 # available.
311 "response": { # The normal response of the operation in case of success. If the original
312 # method returns no data on success, such as `Delete`, the response is
313 # `google.protobuf.Empty`. If the original method is standard
314 # `Get`/`Create`/`Update`, the response should be the resource. For other
315 # methods, the response should have the type `XxxResponse`, where `Xxx`
316 # is the original method name. For example, if the original method name
317 # is `TakeSnapshot()`, the inferred response type is
318 # `TakeSnapshotResponse`.
319 "a_key": "", # Properties of the object. Contains field @type with type URL.
320 },
321 "name": "A String", # The server-assigned name, which is only unique within the same service that
322 # originally returns it. If you use the default HTTP mapping, the
323 # `name` should have the format of `operations/some/unique/name`.
324 }</pre>
325</div>
326
327<div class="method">
328 <code class="details" id="list">list(parent=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
329 <pre>List enabled services for the specified consumer.
330
331Args:
332 parent: string, List enabled services for the specified parent.
333
334An example valid parent would be:
335- projects/my-project (required)
336 pageSize: integer, Requested size of the next page of data.
337 pageToken: string, Token identifying which result to start with; returned by a previous list
338call.
339 x__xgafv: string, V1 error format.
340 Allowed values
341 1 - v1 error format
342 2 - v2 error format
343
344Returns:
345 An object of the form:
346
347 { # Response message for `ListEnabledServices` method.
348 "services": [ # Services enabled for the specified parent.
349 { # The published version of a Service that is managed by
350 # Google Service Management.
351 "name": "A String", # The resource name of the service.
352 #
353 # A valid name would be:
354 # - services/serviceuser.googleapis.com
355 "service": { # `Service` is the root object of Google service configuration schema. It # The service's published configuration.
356 # describes basic information about a service, such as the name and the
357 # title, and delegates other aspects to sub-sections. Each sub-section is
358 # either a proto message or a repeated proto message that configures a
359 # specific aspect, such as auth. See each proto message definition for details.
360 #
361 # Example:
362 #
363 # type: google.api.Service
364 # config_version: 3
365 # name: calendar.googleapis.com
366 # title: Google Calendar API
367 # apis:
368 # - name: google.calendar.v3.Calendar
369 # authentication:
370 # providers:
371 # - id: google_calendar_auth
372 # jwks_uri: https://www.googleapis.com/oauth2/v1/certs
373 # issuer: https://securetoken.google.com
374 # rules:
375 # - selector: "*"
376 # requirements:
377 # provider_id: google_calendar_auth
378 "control": { # Selects and configures the service controller used by the service. The # Configuration for the service control plane.
379 # service controller handles features like abuse, quota, billing, logging,
380 # monitoring, etc.
381 "environment": "A String", # The service control environment to use. If empty, no control plane
382 # feature (like quota and billing) will be enabled.
383 },
384 "monitoredResources": [ # Defines the monitored resources used by this service. This is required
385 # by the Service.monitoring and Service.logging configurations.
386 { # An object that describes the schema of a MonitoredResource object using a
387 # type name and a set of labels. For example, the monitored resource
388 # descriptor for Google Compute Engine VM instances has a type of
389 # `"gce_instance"` and specifies the use of the labels `"instance_id"` and
390 # `"zone"` to identify particular VM instances.
391 #
392 # Different APIs can support different monitored resource types. APIs generally
393 # provide a `list` method that returns the monitored resource descriptors used
394 # by the API.
395 "type": "A String", # Required. The monitored resource type. For example, the type
396 # `"cloudsql_database"` represents databases in Google Cloud SQL.
397 # The maximum length of this value is 256 characters.
398 "labels": [ # Required. A set of labels used to describe instances of this monitored
399 # resource type. For example, an individual Google Cloud SQL database is
400 # identified by values for the labels `"database_id"` and `"zone"`.
401 { # A description of a label.
402 "valueType": "A String", # The type of data that can be assigned to the label.
403 "description": "A String", # A human-readable description for the label.
404 "key": "A String", # The label key.
405 },
406 ],
407 "displayName": "A String", # Optional. A concise name for the monitored resource type that might be
408 # displayed in user interfaces. It should be a Title Cased Noun Phrase,
409 # without any article or other determiners. For example,
410 # `"Google Cloud SQL Database"`.
411 "name": "A String", # Optional. The resource name of the monitored resource descriptor:
412 # `"projects/{project_id}/monitoredResourceDescriptors/{type}"` where
413 # {type} is the value of the `type` field in this object and
414 # {project_id} is a project ID that provides API-specific context for
415 # accessing the type. APIs that do not use project information can use the
416 # resource name format `"monitoredResourceDescriptors/{type}"`.
417 "description": "A String", # Optional. A detailed description of the monitored resource type that might
418 # be used in documentation.
419 },
420 ],
421 "logs": [ # Defines the logs used by this service.
422 { # A description of a log type. Example in YAML format:
423 #
424 # - name: library.googleapis.com/activity_history
425 # description: The history of borrowing and returning library items.
426 # display_name: Activity
427 # labels:
428 # - key: /customer_id
429 # description: Identifier of a library customer
430 "labels": [ # The set of labels that are available to describe a specific log entry.
431 # Runtime requests that contain labels not specified here are
432 # considered invalid.
433 { # A description of a label.
434 "valueType": "A String", # The type of data that can be assigned to the label.
435 "description": "A String", # A human-readable description for the label.
436 "key": "A String", # The label key.
437 },
438 ],
439 "displayName": "A String", # The human-readable name for this log. This information appears on
440 # the user interface and should be concise.
441 "name": "A String", # The name of the log. It must be less than 512 characters long and can
442 # include the following characters: upper- and lower-case alphanumeric
443 # characters [A-Za-z0-9], and punctuation characters including
444 # slash, underscore, hyphen, period [/_-.].
445 "description": "A String", # A human-readable description of this log. This information appears in
446 # the documentation and can contain details.
447 },
448 ],
449 "id": "A String", # A unique ID for a specific instance of this message, typically assigned
450 # by the client for tracking purpose. If empty, the server may choose to
451 # generate one instead.
452 "backend": { # `Backend` defines the backend configuration for a service. # API backend configuration.
453 "rules": [ # A list of API backend rules that apply to individual API methods.
454 #
455 # **NOTE:** All service configuration rules follow "last one wins" order.
456 { # A backend rule provides configuration for an individual API element.
457 "selector": "A String", # Selects the methods to which this rule applies.
458 #
459 # Refer to selector for syntax details.
460 "deadline": 3.14, # The number of seconds to wait for a response from a request. The
461 # default depends on the deployment context.
462 "address": "A String", # The address of the API backend.
463 },
464 ],
465 },
466 "monitoring": { # Monitoring configuration of the service. # Monitoring configuration.
467 #
468 # The example below shows how to configure monitored resources and metrics
469 # for monitoring. In the example, a monitored resource and two metrics are
470 # defined. The `library.googleapis.com/book/returned_count` metric is sent
471 # to both producer and consumer projects, whereas the
472 # `library.googleapis.com/book/overdue_count` metric is only sent to the
473 # consumer project.
474 #
475 # monitored_resources:
476 # - type: library.googleapis.com/branch
477 # labels:
478 # - key: /city
479 # description: The city where the library branch is located in.
480 # - key: /name
481 # description: The name of the branch.
482 # metrics:
483 # - name: library.googleapis.com/book/returned_count
484 # metric_kind: DELTA
485 # value_type: INT64
486 # labels:
487 # - key: /customer_id
488 # - name: library.googleapis.com/book/overdue_count
489 # metric_kind: GAUGE
490 # value_type: INT64
491 # labels:
492 # - key: /customer_id
493 # monitoring:
494 # producer_destinations:
495 # - monitored_resource: library.googleapis.com/branch
496 # metrics:
497 # - library.googleapis.com/book/returned_count
498 # consumer_destinations:
499 # - monitored_resource: library.googleapis.com/branch
500 # metrics:
501 # - library.googleapis.com/book/returned_count
502 # - library.googleapis.com/book/overdue_count
503 "producerDestinations": [ # Monitoring configurations for sending metrics to the producer project.
504 # There can be multiple producer destinations, each one must have a
505 # different monitored resource type. A metric can be used in at most
506 # one producer destination.
507 { # Configuration of a specific monitoring destination (the producer project
508 # or the consumer project).
509 "monitoredResource": "A String", # The monitored resource type. The type must be defined in
510 # Service.monitored_resources section.
511 "metrics": [ # Names of the metrics to report to this monitoring destination.
512 # Each name must be defined in Service.metrics section.
513 "A String",
514 ],
515 },
516 ],
517 "consumerDestinations": [ # Monitoring configurations for sending metrics to the consumer project.
518 # There can be multiple consumer destinations, each one must have a
519 # different monitored resource type. A metric can be used in at most
520 # one consumer destination.
521 { # Configuration of a specific monitoring destination (the producer project
522 # or the consumer project).
523 "monitoredResource": "A String", # The monitored resource type. The type must be defined in
524 # Service.monitored_resources section.
525 "metrics": [ # Names of the metrics to report to this monitoring destination.
526 # Each name must be defined in Service.metrics section.
527 "A String",
528 ],
529 },
530 ],
531 },
532 "systemParameters": { # ### System parameter configuration # System parameter configuration.
533 #
534 # A system parameter is a special kind of parameter defined by the API
535 # system, not by an individual API. It is typically mapped to an HTTP header
536 # and/or a URL query parameter. This configuration specifies which methods
537 # change the names of the system parameters.
538 "rules": [ # Define system parameters.
539 #
540 # The parameters defined here will override the default parameters
541 # implemented by the system. If this field is missing from the service
542 # config, default system parameters will be used. Default system parameters
543 # and names is implementation-dependent.
544 #
545 # Example: define api key for all methods
546 #
547 # system_parameters
548 # rules:
549 # - selector: "*"
550 # parameters:
551 # - name: api_key
552 # url_query_parameter: api_key
553 #
554 #
555 # Example: define 2 api key names for a specific method.
556 #
557 # system_parameters
558 # rules:
559 # - selector: "/ListShelves"
560 # parameters:
561 # - name: api_key
562 # http_header: Api-Key1
563 # - name: api_key
564 # http_header: Api-Key2
565 #
566 # **NOTE:** All service configuration rules follow "last one wins" order.
567 { # Define a system parameter rule mapping system parameter definitions to
568 # methods.
569 "parameters": [ # Define parameters. Multiple names may be defined for a parameter.
570 # For a given method call, only one of them should be used. If multiple
571 # names are used the behavior is implementation-dependent.
572 # If none of the specified names are present the behavior is
573 # parameter-dependent.
574 { # Define a parameter's name and location. The parameter may be passed as either
575 # an HTTP header or a URL query parameter, and if both are passed the behavior
576 # is implementation-dependent.
577 "urlQueryParameter": "A String", # Define the URL query parameter name to use for the parameter. It is case
578 # sensitive.
579 "name": "A String", # Define the name of the parameter, such as "api_key" . It is case sensitive.
580 "httpHeader": "A String", # Define the HTTP header name to use for the parameter. It is case
581 # insensitive.
582 },
583 ],
584 "selector": "A String", # Selects the methods to which this rule applies. Use '*' to indicate all
585 # methods in all APIs.
586 #
587 # Refer to selector for syntax details.
588 },
589 ],
590 },
591 "authentication": { # `Authentication` defines the authentication configuration for an API. # Auth configuration.
592 #
593 # Example for an API targeted for external use:
594 #
595 # name: calendar.googleapis.com
596 # authentication:
597 # providers:
598 # - id: google_calendar_auth
599 # jwks_uri: https://www.googleapis.com/oauth2/v1/certs
600 # issuer: https://securetoken.google.com
601 # rules:
602 # - selector: "*"
603 # requirements:
604 # provider_id: google_calendar_auth
605 "rules": [ # A list of authentication rules that apply to individual API methods.
606 #
607 # **NOTE:** All service configuration rules follow "last one wins" order.
608 { # Authentication rules for the service.
609 #
610 # By default, if a method has any authentication requirements, every request
611 # must include a valid credential matching one of the requirements.
612 # It's an error to include more than one kind of credential in a single
613 # request.
614 #
615 # If a method doesn't have any auth requirements, request credentials will be
616 # ignored.
617 "oauth": { # OAuth scopes are a way to define data and permissions on data. For example, # The requirements for OAuth credentials.
618 # there are scopes defined for "Read-only access to Google Calendar" and
619 # "Access to Cloud Platform". Users can consent to a scope for an application,
620 # giving it permission to access that data on their behalf.
621 #
622 # OAuth scope specifications should be fairly coarse grained; a user will need
623 # to see and understand the text description of what your scope means.
624 #
625 # In most cases: use one or at most two OAuth scopes for an entire family of
626 # products. If your product has multiple APIs, you should probably be sharing
627 # the OAuth scope across all of those APIs.
628 #
629 # When you need finer grained OAuth consent screens: talk with your product
630 # management about how developers will use them in practice.
631 #
632 # Please note that even though each of the canonical scopes is enough for a
633 # request to be accepted and passed to the backend, a request can still fail
634 # due to the backend requiring additional scopes or permissions.
635 "canonicalScopes": "A String", # The list of publicly documented OAuth scopes that are allowed access. An
636 # OAuth token containing any of these scopes will be accepted.
637 #
638 # Example:
639 #
640 # canonical_scopes: https://www.googleapis.com/auth/calendar,
641 # https://www.googleapis.com/auth/calendar.read
642 },
643 "requirements": [ # Requirements for additional authentication providers.
644 { # User-defined authentication requirements, including support for
645 # [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
646 "providerId": "A String", # id from authentication provider.
647 #
648 # Example:
649 #
650 # provider_id: bookstore_auth
651 "audiences": "A String", # NOTE: This will be deprecated soon, once AuthProvider.audiences is
652 # implemented and accepted in all the runtime components.
653 #
654 # The list of JWT
655 # [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).
656 # that are allowed to access. A JWT containing any of these audiences will
657 # be accepted. When this setting is absent, only JWTs with audience
658 # "https://Service_name/API_name"
659 # will be accepted. For example, if no audiences are in the setting,
660 # LibraryService API will only accept JWTs with the following audience
661 # "https://library-example.googleapis.com/google.example.library.v1.LibraryService".
662 #
663 # Example:
664 #
665 # audiences: bookstore_android.apps.googleusercontent.com,
666 # bookstore_web.apps.googleusercontent.com
667 },
668 ],
669 "allowWithoutCredential": True or False, # Whether to allow requests without a credential. The credential can be
670 # an OAuth token, Google cookies (first-party auth) or EndUserCreds.
671 #
672 # For requests without credentials, if the service control environment is
673 # specified, each incoming request **must** be associated with a service
674 # consumer. This can be done by passing an API key that belongs to a consumer
675 # project.
676 "selector": "A String", # Selects the methods to which this rule applies.
677 #
678 # Refer to selector for syntax details.
679 },
680 ],
681 "providers": [ # Defines a set of authentication providers that a service supports.
682 { # Configuration for an anthentication provider, including support for
683 # [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
684 "audiences": "A String", # The list of JWT
685 # [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).
686 # that are allowed to access. A JWT containing any of these audiences will
687 # be accepted. When this setting is absent, only JWTs with audience
688 # "https://Service_name/API_name"
689 # will be accepted. For example, if no audiences are in the setting,
690 # LibraryService API will only accept JWTs with the following audience
691 # "https://library-example.googleapis.com/google.example.library.v1.LibraryService".
692 #
693 # Example:
694 #
695 # audiences: bookstore_android.apps.googleusercontent.com,
696 # bookstore_web.apps.googleusercontent.com
697 "jwksUri": "A String", # URL of the provider's public key set to validate signature of the JWT. See
698 # [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata).
699 # Optional if the key set document:
700 # - can be retrieved from
701 # [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html
702 # of the issuer.
703 # - can be inferred from the email domain of the issuer (e.g. a Google service account).
704 #
705 # Example: https://www.googleapis.com/oauth2/v1/certs
706 "id": "A String", # The unique identifier of the auth provider. It will be referred to by
707 # `AuthRequirement.provider_id`.
708 #
709 # Example: "bookstore_auth".
710 "issuer": "A String", # Identifies the principal that issued the JWT. See
711 # https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.1
712 # Usually a URL or an email address.
713 #
714 # Example: https://securetoken.google.com
715 # Example: 1234567-compute@developer.gserviceaccount.com
716 },
717 ],
718 },
719 "usage": { # Configuration controlling usage of a service. # Configuration controlling usage of this service.
720 "rules": [ # A list of usage rules that apply to individual API methods.
721 #
722 # **NOTE:** All service configuration rules follow "last one wins" order.
723 { # Usage configuration rules for the service.
724 #
725 # NOTE: Under development.
726 #
727 #
728 # Use this rule to configure unregistered calls for the service. Unregistered
729 # calls are calls that do not contain consumer project identity.
730 # (Example: calls that do not contain an API key).
731 # By default, API methods do not allow unregistered calls, and each method call
732 # must be identified by a consumer project identity. Use this rule to
733 # allow/disallow unregistered calls.
734 #
735 # Example of an API that wants to allow unregistered calls for entire service.
736 #
737 # usage:
738 # rules:
739 # - selector: "*"
740 # allow_unregistered_calls: true
741 #
742 # Example of a method that wants to allow unregistered calls.
743 #
744 # usage:
745 # rules:
746 # - selector: "google.example.library.v1.LibraryService.CreateBook"
747 # allow_unregistered_calls: true
748 "selector": "A String", # Selects the methods to which this rule applies. Use '*' to indicate all
749 # methods in all APIs.
750 #
751 # Refer to selector for syntax details.
752 "allowUnregisteredCalls": True or False, # True, if the method allows unregistered calls; false otherwise.
753 },
754 ],
755 "producerNotificationChannel": "A String", # The full resource name of a channel used for sending notifications to the
756 # service producer.
757 #
758 # Google Service Management currently only supports
759 # [Google Cloud Pub/Sub](https://cloud.google.com/pubsub) as a notification
760 # channel. To use Google Cloud Pub/Sub as the channel, this must be the name
761 # of a Cloud Pub/Sub topic that uses the Cloud Pub/Sub topic name format
762 # documented in https://cloud.google.com/pubsub/docs/overview.
763 "requirements": [ # Requirements that must be satisfied before a consumer project can use the
764 # service. Each requirement is of the form <service.name>/<requirement-id>;
765 # for example 'serviceusage.googleapis.com/billing-enabled'.
766 "A String",
767 ],
768 },
769 "configVersion": 42, # The version of the service configuration. The config version may
770 # influence interpretation of the configuration, for example, to
771 # determine defaults. This is documented together with applicable
772 # options. The current default for the config version itself is `3`.
773 "producerProjectId": "A String", # The id of the Google developer project that owns the service.
774 # Members of this project can manage the service configuration,
775 # manage consumption of the service, etc.
776 "http": { # Defines the HTTP configuration for a service. It contains a list of # HTTP configuration.
777 # HttpRule, each specifying the mapping of an RPC method
778 # to one or more HTTP REST API methods.
779 "rules": [ # A list of HTTP configuration rules that apply to individual API methods.
780 #
781 # **NOTE:** All service configuration rules follow "last one wins" order.
782 { # `HttpRule` defines the mapping of an RPC method to one or more HTTP
783 # REST APIs. The mapping determines what portions of the request
784 # message are populated from the path, query parameters, or body of
785 # the HTTP request. The mapping is typically specified as an
786 # `google.api.http` annotation, see "google/api/annotations.proto"
787 # for details.
788 #
789 # The mapping consists of a field specifying the path template and
790 # method kind. The path template can refer to fields in the request
791 # message, as in the example below which describes a REST GET
792 # operation on a resource collection of messages:
793 #
794 #
795 # service Messaging {
796 # rpc GetMessage(GetMessageRequest) returns (Message) {
797 # option (google.api.http).get = "/v1/messages/{message_id}/{sub.subfield}";
798 # }
799 # }
800 # message GetMessageRequest {
801 # message SubMessage {
802 # string subfield = 1;
803 # }
804 # string message_id = 1; // mapped to the URL
805 # SubMessage sub = 2; // `sub.subfield` is url-mapped
806 # }
807 # message Message {
808 # string text = 1; // content of the resource
809 # }
810 #
811 # The same http annotation can alternatively be expressed inside the
812 # `GRPC API Configuration` YAML file.
813 #
814 # http:
815 # rules:
816 # - selector: <proto_package_name>.Messaging.GetMessage
817 # get: /v1/messages/{message_id}/{sub.subfield}
818 #
819 # This definition enables an automatic, bidrectional mapping of HTTP
820 # JSON to RPC. Example:
821 #
822 # HTTP | RPC
823 # -----|-----
824 # `GET /v1/messages/123456/foo` | `GetMessage(message_id: "123456" sub: SubMessage(subfield: "foo"))`
825 #
826 # In general, not only fields but also field paths can be referenced
827 # from a path pattern. Fields mapped to the path pattern cannot be
828 # repeated and must have a primitive (non-message) type.
829 #
830 # Any fields in the request message which are not bound by the path
831 # pattern automatically become (optional) HTTP query
832 # parameters. Assume the following definition of the request message:
833 #
834 #
835 # message GetMessageRequest {
836 # message SubMessage {
837 # string subfield = 1;
838 # }
839 # string message_id = 1; // mapped to the URL
840 # int64 revision = 2; // becomes a parameter
841 # SubMessage sub = 3; // `sub.subfield` becomes a parameter
842 # }
843 #
844 #
845 # This enables a HTTP JSON to RPC mapping as below:
846 #
847 # HTTP | RPC
848 # -----|-----
849 # `GET /v1/messages/123456?revision=2&sub.subfield=foo` | `GetMessage(message_id: "123456" revision: 2 sub: SubMessage(subfield: "foo"))`
850 #
851 # Note that fields which are mapped to HTTP parameters must have a
852 # primitive type or a repeated primitive type. Message types are not
853 # allowed. In the case of a repeated type, the parameter can be
854 # repeated in the URL, as in `...?param=A&param=B`.
855 #
856 # For HTTP method kinds which allow a request body, the `body` field
857 # specifies the mapping. Consider a REST update method on the
858 # message resource collection:
859 #
860 #
861 # service Messaging {
862 # rpc UpdateMessage(UpdateMessageRequest) returns (Message) {
863 # option (google.api.http) = {
864 # put: "/v1/messages/{message_id}"
865 # body: "message"
866 # };
867 # }
868 # }
869 # message UpdateMessageRequest {
870 # string message_id = 1; // mapped to the URL
871 # Message message = 2; // mapped to the body
872 # }
873 #
874 #
875 # The following HTTP JSON to RPC mapping is enabled, where the
876 # representation of the JSON in the request body is determined by
877 # protos JSON encoding:
878 #
879 # HTTP | RPC
880 # -----|-----
881 # `PUT /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: "123456" message { text: "Hi!" })`
882 #
883 # The special name `*` can be used in the body mapping to define that
884 # every field not bound by the path template should be mapped to the
885 # request body. This enables the following alternative definition of
886 # the update method:
887 #
888 # service Messaging {
889 # rpc UpdateMessage(Message) returns (Message) {
890 # option (google.api.http) = {
891 # put: "/v1/messages/{message_id}"
892 # body: "*"
893 # };
894 # }
895 # }
896 # message Message {
897 # string message_id = 1;
898 # string text = 2;
899 # }
900 #
901 #
902 # The following HTTP JSON to RPC mapping is enabled:
903 #
904 # HTTP | RPC
905 # -----|-----
906 # `PUT /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: "123456" text: "Hi!")`
907 #
908 # Note that when using `*` in the body mapping, it is not possible to
909 # have HTTP parameters, as all fields not bound by the path end in
910 # the body. This makes this option more rarely used in practice of
911 # defining REST APIs. The common usage of `*` is in custom methods
912 # which don't use the URL at all for transferring data.
913 #
914 # It is possible to define multiple HTTP methods for one RPC by using
915 # the `additional_bindings` option. Example:
916 #
917 # service Messaging {
918 # rpc GetMessage(GetMessageRequest) returns (Message) {
919 # option (google.api.http) = {
920 # get: "/v1/messages/{message_id}"
921 # additional_bindings {
922 # get: "/v1/users/{user_id}/messages/{message_id}"
923 # }
924 # };
925 # }
926 # }
927 # message GetMessageRequest {
928 # string message_id = 1;
929 # string user_id = 2;
930 # }
931 #
932 #
933 # This enables the following two alternative HTTP JSON to RPC
934 # mappings:
935 #
936 # HTTP | RPC
937 # -----|-----
938 # `GET /v1/messages/123456` | `GetMessage(message_id: "123456")`
939 # `GET /v1/users/me/messages/123456` | `GetMessage(user_id: "me" message_id: "123456")`
940 #
941 # # Rules for HTTP mapping
942 #
943 # The rules for mapping HTTP path, query parameters, and body fields
944 # to the request message are as follows:
945 #
946 # 1. The `body` field specifies either `*` or a field path, or is
947 # omitted. If omitted, it assumes there is no HTTP body.
948 # 2. Leaf fields (recursive expansion of nested messages in the
949 # request) can be classified into three types:
950 # (a) Matched in the URL template.
951 # (b) Covered by body (if body is `*`, everything except (a) fields;
952 # else everything under the body field)
953 # (c) All other fields.
954 # 3. URL query parameters found in the HTTP request are mapped to (c) fields.
955 # 4. Any body sent with an HTTP request can contain only (b) fields.
956 #
957 # The syntax of the path template is as follows:
958 #
959 # Template = "/" Segments [ Verb ] ;
960 # Segments = Segment { "/" Segment } ;
961 # Segment = "*" | "**" | LITERAL | Variable ;
962 # Variable = "{" FieldPath [ "=" Segments ] "}" ;
963 # FieldPath = IDENT { "." IDENT } ;
964 # Verb = ":" LITERAL ;
965 #
966 # The syntax `*` matches a single path segment. It follows the semantics of
967 # [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2 Simple String
968 # Expansion.
969 #
970 # The syntax `**` matches zero or more path segments. It follows the semantics
971 # of [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.3 Reserved
972 # Expansion. NOTE: it must be the last segment in the path except the Verb.
973 #
974 # The syntax `LITERAL` matches literal text in the URL path.
975 #
976 # The syntax `Variable` matches the entire path as specified by its template;
977 # this nested template must not contain further variables. If a variable
978 # matches a single path segment, its template may be omitted, e.g. `{var}`
979 # is equivalent to `{var=*}`.
980 #
981 # NOTE: the field paths in variables and in the `body` must not refer to
982 # repeated fields or map fields.
983 #
984 # Use CustomHttpPattern to specify any HTTP method that is not included in the
985 # `pattern` field, such as HEAD, or "*" to leave the HTTP method unspecified for
986 # a given URL path rule. The wild-card rule is useful for services that provide
987 # content to Web (HTML) clients.
988 "body": "A String", # The name of the request field whose value is mapped to the HTTP body, or
989 # `*` for mapping all fields not captured by the path pattern to the HTTP
990 # body. NOTE: the referred field must not be a repeated field and must be
991 # present at the top-level of request message type.
992 "selector": "A String", # Selects methods to which this rule applies.
993 #
994 # Refer to selector for syntax details.
995 "get": "A String", # Used for listing and getting information about resources.
996 "mediaDownload": { # Use this only for Scotty Requests. Do not use this for media support using # Use this only for Scotty Requests. Do not use this for bytestream methods.
997 # For media support, add instead [][google.bytestream.RestByteStream] as an
998 # API to your configuration.
999 # Bytestream, add instead [][google.bytestream.RestByteStream] as an API to
1000 # your configuration for Bytestream methods.
1001 "enabled": True or False, # Whether download is enabled.
1002 "downloadService": "A String", # DO NOT USE THIS FIELD UNTIL THIS WARNING IS REMOVED.
1003 #
1004 # Specify name of the download service if one is used for download.
1005 },
1006 "additionalBindings": [ # Additional HTTP bindings for the selector. Nested bindings must
1007 # not contain an `additional_bindings` field themselves (that is,
1008 # the nesting may only be one level deep).
1009 # Object with schema name: HttpRule
1010 ],
1011 "mediaUpload": { # Use this only for Scotty Requests. Do not use this for media support using # Use this only for Scotty Requests. Do not use this for media support using
1012 # Bytestream, add instead
1013 # [][google.bytestream.RestByteStream] as an API to your
1014 # configuration for Bytestream methods.
1015 # Bytestream, add instead [][google.bytestream.RestByteStream] as an API to
1016 # your configuration for Bytestream methods.
1017 "enabled": True or False, # Whether upload is enabled.
1018 "uploadService": "A String", # DO NOT USE THIS FIELD UNTIL THIS WARNING IS REMOVED.
1019 #
1020 # Specify name of the upload service if one is used for upload.
1021 },
1022 "patch": "A String", # Used for updating a resource.
1023 "responseBody": "A String", # The name of the response field whose value is mapped to the HTTP body of
1024 # response. Other response fields are ignored. This field is optional. When
1025 # not set, the response message will be used as HTTP body of response.
1026 # NOTE: the referred field must be not a repeated field and must be present
1027 # at the top-level of response message type.
1028 "put": "A String", # Used for updating a resource.
1029 "post": "A String", # Used for creating a resource.
1030 "custom": { # A custom pattern is used for defining custom HTTP verb. # Custom pattern is used for defining custom verbs.
1031 "path": "A String", # The path matched by this custom verb.
1032 "kind": "A String", # The name of this custom HTTP verb.
1033 },
1034 "delete": "A String", # Used for deleting a resource.
1035 },
1036 ],
1037 },
1038 "apis": [ # A list of API interfaces exported by this service. Only the `name` field
1039 # of the google.protobuf.Api needs to be provided by the configuration
1040 # author, as the remaining fields will be derived from the IDL during the
1041 # normalization process. It is an error to specify an API interface here
1042 # which cannot be resolved against the associated IDL files.
1043 { # Api is a light-weight descriptor for a protocol buffer service.
1044 "name": "A String", # The fully qualified name of this api, including package name
1045 # followed by the api's simple name.
1046 "sourceContext": { # `SourceContext` represents information about the source of a # Source context for the protocol buffer service represented by this
1047 # message.
1048 # protobuf element, like the file in which it is defined.
1049 "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
1050 # protobuf element. For example: `"google/protobuf/source_context.proto"`.
1051 },
1052 "mixins": [ # Included APIs. See Mixin.
1053 { # Declares an API to be included in this API. The including API must
1054 # redeclare all the methods from the included API, but documentation
1055 # and options are inherited as follows:
1056 #
1057 # - If after comment and whitespace stripping, the documentation
1058 # string of the redeclared method is empty, it will be inherited
1059 # from the original method.
1060 #
1061 # - Each annotation belonging to the service config (http,
1062 # visibility) which is not set in the redeclared method will be
1063 # inherited.
1064 #
1065 # - If an http annotation is inherited, the path pattern will be
1066 # modified as follows. Any version prefix will be replaced by the
1067 # version of the including API plus the root path if specified.
1068 #
1069 # Example of a simple mixin:
1070 #
1071 # package google.acl.v1;
1072 # service AccessControl {
1073 # // Get the underlying ACL object.
1074 # rpc GetAcl(GetAclRequest) returns (Acl) {
1075 # option (google.api.http).get = "/v1/{resource=**}:getAcl";
1076 # }
1077 # }
1078 #
1079 # package google.storage.v2;
1080 # service Storage {
1081 # // rpc GetAcl(GetAclRequest) returns (Acl);
1082 #
1083 # // Get a data record.
1084 # rpc GetData(GetDataRequest) returns (Data) {
1085 # option (google.api.http).get = "/v2/{resource=**}";
1086 # }
1087 # }
1088 #
1089 # Example of a mixin configuration:
1090 #
1091 # apis:
1092 # - name: google.storage.v2.Storage
1093 # mixins:
1094 # - name: google.acl.v1.AccessControl
1095 #
1096 # The mixin construct implies that all methods in `AccessControl` are
1097 # also declared with same name and request/response types in
1098 # `Storage`. A documentation generator or annotation processor will
1099 # see the effective `Storage.GetAcl` method after inherting
1100 # documentation and annotations as follows:
1101 #
1102 # service Storage {
1103 # // Get the underlying ACL object.
1104 # rpc GetAcl(GetAclRequest) returns (Acl) {
1105 # option (google.api.http).get = "/v2/{resource=**}:getAcl";
1106 # }
1107 # ...
1108 # }
1109 #
1110 # Note how the version in the path pattern changed from `v1` to `v2`.
1111 #
1112 # If the `root` field in the mixin is specified, it should be a
1113 # relative path under which inherited HTTP paths are placed. Example:
1114 #
1115 # apis:
1116 # - name: google.storage.v2.Storage
1117 # mixins:
1118 # - name: google.acl.v1.AccessControl
1119 # root: acls
1120 #
1121 # This implies the following inherited HTTP annotation:
1122 #
1123 # service Storage {
1124 # // Get the underlying ACL object.
1125 # rpc GetAcl(GetAclRequest) returns (Acl) {
1126 # option (google.api.http).get = "/v2/acls/{resource=**}:getAcl";
1127 # }
1128 # ...
1129 # }
1130 "root": "A String", # If non-empty specifies a path under which inherited HTTP paths
1131 # are rooted.
1132 "name": "A String", # The fully qualified name of the API which is included.
1133 },
1134 ],
1135 "syntax": "A String", # The source syntax of the service.
1136 "version": "A String", # A version string for this api. If specified, must have the form
1137 # `major-version.minor-version`, as in `1.10`. If the minor version
1138 # is omitted, it defaults to zero. If the entire version field is
1139 # empty, the major version is derived from the package name, as
1140 # outlined below. If the field is not empty, the version in the
1141 # package name will be verified to be consistent with what is
1142 # provided here.
1143 #
1144 # The versioning schema uses [semantic
1145 # versioning](http://semver.org) where the major version number
1146 # indicates a breaking change and the minor version an additive,
1147 # non-breaking change. Both version numbers are signals to users
1148 # what to expect from different versions, and should be carefully
1149 # chosen based on the product plan.
1150 #
1151 # The major version is also reflected in the package name of the
1152 # API, which must end in `v<major-version>`, as in
1153 # `google.feature.v1`. For major versions 0 and 1, the suffix can
1154 # be omitted. Zero major versions must only be used for
1155 # experimental, none-GA apis.
1156 "options": [ # Any metadata attached to the API.
1157 { # A protocol buffer option, which can be attached to a message, field,
1158 # enumeration, etc.
1159 "name": "A String", # The option's name. For protobuf built-in options (options defined in
1160 # descriptor.proto), this is the short name. For example, `"map_entry"`.
1161 # For custom options, it should be the fully-qualified name. For example,
1162 # `"google.api.http"`.
1163 "value": { # The option's value packed in an Any message. If the value is a primitive,
1164 # the corresponding wrapper type defined in google/protobuf/wrappers.proto
1165 # should be used. If the value is an enum, it should be stored as an int32
1166 # value using the google.protobuf.Int32Value type.
1167 "a_key": "", # Properties of the object. Contains field @type with type URL.
1168 },
1169 },
1170 ],
1171 "methods": [ # The methods of this api, in unspecified order.
1172 { # Method represents a method of an api.
1173 "name": "A String", # The simple name of this method.
1174 "requestStreaming": True or False, # If true, the request is streamed.
1175 "responseTypeUrl": "A String", # The URL of the output message type.
1176 "requestTypeUrl": "A String", # A URL of the input message type.
1177 "responseStreaming": True or False, # If true, the response is streamed.
1178 "syntax": "A String", # The source syntax of this method.
1179 "options": [ # Any metadata attached to the method.
1180 { # A protocol buffer option, which can be attached to a message, field,
1181 # enumeration, etc.
1182 "name": "A String", # The option's name. For protobuf built-in options (options defined in
1183 # descriptor.proto), this is the short name. For example, `"map_entry"`.
1184 # For custom options, it should be the fully-qualified name. For example,
1185 # `"google.api.http"`.
1186 "value": { # The option's value packed in an Any message. If the value is a primitive,
1187 # the corresponding wrapper type defined in google/protobuf/wrappers.proto
1188 # should be used. If the value is an enum, it should be stored as an int32
1189 # value using the google.protobuf.Int32Value type.
1190 "a_key": "", # Properties of the object. Contains field @type with type URL.
1191 },
1192 },
1193 ],
1194 },
1195 ],
1196 },
1197 ],
1198 "customError": { # Customize service error responses. For example, list any service # Custom error configuration.
1199 # specific protobuf types that can appear in error detail lists of
1200 # error responses.
1201 #
1202 # Example:
1203 #
1204 # custom_error:
1205 # types:
1206 # - google.foo.v1.CustomError
1207 # - google.foo.v1.AnotherError
1208 "rules": [ # The list of custom error rules that apply to individual API messages.
1209 #
1210 # **NOTE:** All service configuration rules follow "last one wins" order.
1211 { # A custom error rule.
1212 "isErrorType": True or False, # Mark this message as possible payload in error response. Otherwise,
1213 # objects of this type will be filtered when they appear in error payload.
1214 "selector": "A String", # Selects messages to which this rule applies.
1215 #
1216 # Refer to selector for syntax details.
1217 },
1218 ],
1219 "types": [ # The list of custom error detail types, e.g. 'google.foo.v1.CustomError'.
1220 "A String",
1221 ],
1222 },
1223 "visibility": { # `Visibility` defines restrictions for the visibility of service # API visibility configuration.
1224 # elements. Restrictions are specified using visibility labels
1225 # (e.g., TRUSTED_TESTER) that are elsewhere linked to users and projects.
1226 #
1227 # Users and projects can have access to more than one visibility label. The
1228 # effective visibility for multiple labels is the union of each label's
1229 # elements, plus any unrestricted elements.
1230 #
1231 # If an element and its parents have no restrictions, visibility is
1232 # unconditionally granted.
1233 #
1234 # Example:
1235 #
1236 # visibility:
1237 # rules:
1238 # - selector: google.calendar.Calendar.EnhancedSearch
1239 # restriction: TRUSTED_TESTER
1240 # - selector: google.calendar.Calendar.Delegate
1241 # restriction: GOOGLE_INTERNAL
1242 #
1243 # Here, all methods are publicly visible except for the restricted methods
1244 # EnhancedSearch and Delegate.
1245 "rules": [ # A list of visibility rules that apply to individual API elements.
1246 #
1247 # **NOTE:** All service configuration rules follow "last one wins" order.
1248 { # A visibility rule provides visibility configuration for an individual API
1249 # element.
1250 "restriction": "A String", # A comma-separated list of visibility labels that apply to the `selector`.
1251 # Any of the listed labels can be used to grant the visibility.
1252 #
1253 # If a rule has multiple labels, removing one of the labels but not all of
1254 # them can break clients.
1255 #
1256 # Example:
1257 #
1258 # visibility:
1259 # rules:
1260 # - selector: google.calendar.Calendar.EnhancedSearch
1261 # restriction: GOOGLE_INTERNAL, TRUSTED_TESTER
1262 #
1263 # Removing GOOGLE_INTERNAL from this restriction will break clients that
1264 # rely on this method and only had access to it through GOOGLE_INTERNAL.
1265 "selector": "A String", # Selects methods, messages, fields, enums, etc. to which this rule applies.
1266 #
1267 # Refer to selector for syntax details.
1268 },
1269 ],
1270 },
1271 "metrics": [ # Defines the metrics used by this service.
1272 { # Defines a metric type and its schema. Once a metric descriptor is created,
1273 # deleting or altering it stops data collection and makes the metric type's
1274 # existing data unusable.
1275 "displayName": "A String", # A concise name for the metric, which can be displayed in user interfaces.
1276 # Use sentence case without an ending period, for example "Request count".
1277 "description": "A String", # A detailed description of the metric, which can be used in documentation.
1278 "metricKind": "A String", # Whether the metric records instantaneous values, changes to a value, etc.
1279 # Some combinations of `metric_kind` and `value_type` might not be supported.
1280 "valueType": "A String", # Whether the measurement is an integer, a floating-point number, etc.
1281 # Some combinations of `metric_kind` and `value_type` might not be supported.
1282 "labels": [ # The set of labels that can be used to describe a specific
1283 # instance of this metric type. For example, the
1284 # `appengine.googleapis.com/http/server/response_latencies` metric
1285 # type has a label for the HTTP response code, `response_code`, so
1286 # you can look at latencies for successful responses or just
1287 # for responses that failed.
1288 { # A description of a label.
1289 "valueType": "A String", # The type of data that can be assigned to the label.
1290 "description": "A String", # A human-readable description for the label.
1291 "key": "A String", # The label key.
1292 },
1293 ],
1294 "type": "A String", # The metric type, including its DNS name prefix. The type is not
1295 # URL-encoded. All user-defined custom metric types have the DNS name
1296 # `custom.googleapis.com`. Metric types should use a natural hierarchical
1297 # grouping. For example:
1298 #
1299 # "custom.googleapis.com/invoice/paid/amount"
1300 # "appengine.googleapis.com/http/server/response_latencies"
1301 "unit": "A String", # The unit in which the metric value is reported. It is only applicable
1302 # if the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The
1303 # supported units are a subset of [The Unified Code for Units of
1304 # Measure](http://unitsofmeasure.org/ucum.html) standard:
1305 #
1306 # **Basic units (UNIT)**
1307 #
1308 # * `bit` bit
1309 # * `By` byte
1310 # * `s` second
1311 # * `min` minute
1312 # * `h` hour
1313 # * `d` day
1314 #
1315 # **Prefixes (PREFIX)**
1316 #
1317 # * `k` kilo (10**3)
1318 # * `M` mega (10**6)
1319 # * `G` giga (10**9)
1320 # * `T` tera (10**12)
1321 # * `P` peta (10**15)
1322 # * `E` exa (10**18)
1323 # * `Z` zetta (10**21)
1324 # * `Y` yotta (10**24)
1325 # * `m` milli (10**-3)
1326 # * `u` micro (10**-6)
1327 # * `n` nano (10**-9)
1328 # * `p` pico (10**-12)
1329 # * `f` femto (10**-15)
1330 # * `a` atto (10**-18)
1331 # * `z` zepto (10**-21)
1332 # * `y` yocto (10**-24)
1333 # * `Ki` kibi (2**10)
1334 # * `Mi` mebi (2**20)
1335 # * `Gi` gibi (2**30)
1336 # * `Ti` tebi (2**40)
1337 #
1338 # **Grammar**
1339 #
1340 # The grammar includes the dimensionless unit `1`, such as `1/s`.
1341 #
1342 # The grammar also includes these connectors:
1343 #
1344 # * `/` division (as an infix operator, e.g. `1/s`).
1345 # * `.` multiplication (as an infix operator, e.g. `GBy.d`)
1346 #
1347 # The grammar for a unit is as follows:
1348 #
1349 # Expression = Component { "." Component } { "/" Component } ;
1350 #
1351 # Component = [ PREFIX ] UNIT [ Annotation ]
1352 # | Annotation
1353 # | "1"
1354 # ;
1355 #
1356 # Annotation = "{" NAME "}" ;
1357 #
1358 # Notes:
1359 #
1360 # * `Annotation` is just a comment if it follows a `UNIT` and is
1361 # equivalent to `1` if it is used alone. For examples,
1362 # `{requests}/s == 1/s`, `By{transmitted}/s == By/s`.
1363 # * `NAME` is a sequence of non-blank printable ASCII characters not
1364 # containing '{' or '}'.
1365 "name": "A String", # The resource name of the metric descriptor. Depending on the
1366 # implementation, the name typically includes: (1) the parent resource name
1367 # that defines the scope of the metric type or of its data; and (2) the
1368 # metric's URL-encoded type, which also appears in the `type` field of this
1369 # descriptor. For example, following is the resource name of a custom
1370 # metric within the GCP project `my-project-id`:
1371 #
1372 # "projects/my-project-id/metricDescriptors/custom.googleapis.com%2Finvoice%2Fpaid%2Famount"
1373 },
1374 ],
1375 "enums": [ # A list of all enum types included in this API service. Enums
1376 # referenced directly or indirectly by the `apis` are automatically
1377 # included. Enums which are not referenced but shall be included
1378 # should be listed here by name. Example:
1379 #
1380 # enums:
1381 # - name: google.someapi.v1.SomeEnum
1382 { # Enum type definition.
1383 "sourceContext": { # `SourceContext` represents information about the source of a # The source context.
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 "enumvalue": [ # Enum value definitions.
1389 { # Enum value definition.
1390 "options": [ # Protocol buffer options.
1391 { # A protocol buffer option, which can be attached to a message, field,
1392 # enumeration, etc.
1393 "name": "A String", # The option's name. For protobuf built-in options (options defined in
1394 # descriptor.proto), this is the short name. For example, `"map_entry"`.
1395 # For custom options, it should be the fully-qualified name. For example,
1396 # `"google.api.http"`.
1397 "value": { # The option's value packed in an Any message. If the value is a primitive,
1398 # the corresponding wrapper type defined in google/protobuf/wrappers.proto
1399 # should be used. If the value is an enum, it should be stored as an int32
1400 # value using the google.protobuf.Int32Value type.
1401 "a_key": "", # Properties of the object. Contains field @type with type URL.
1402 },
1403 },
1404 ],
1405 "number": 42, # Enum value number.
1406 "name": "A String", # Enum value name.
1407 },
1408 ],
1409 "options": [ # Protocol buffer options.
1410 { # A protocol buffer option, which can be attached to a message, field,
1411 # enumeration, etc.
1412 "name": "A String", # The option's name. For protobuf built-in options (options defined in
1413 # descriptor.proto), this is the short name. For example, `"map_entry"`.
1414 # For custom options, it should be the fully-qualified name. For example,
1415 # `"google.api.http"`.
1416 "value": { # The option's value packed in an Any message. If the value is a primitive,
1417 # the corresponding wrapper type defined in google/protobuf/wrappers.proto
1418 # should be used. If the value is an enum, it should be stored as an int32
1419 # value using the google.protobuf.Int32Value type.
1420 "a_key": "", # Properties of the object. Contains field @type with type URL.
1421 },
1422 },
1423 ],
1424 "name": "A String", # Enum type name.
1425 "syntax": "A String", # The source syntax.
1426 },
1427 ],
1428 "types": [ # A list of all proto message types included in this API service.
1429 # Types referenced directly or indirectly by the `apis` are
1430 # automatically included. Messages which are not referenced but
1431 # shall be included, such as types used by the `google.protobuf.Any` type,
1432 # should be listed here by name. Example:
1433 #
1434 # types:
1435 # - name: google.protobuf.Int32
1436 { # A protocol buffer message type.
1437 "oneofs": [ # The list of types appearing in `oneof` definitions in this type.
1438 "A String",
1439 ],
1440 "name": "A String", # The fully qualified message name.
1441 "sourceContext": { # `SourceContext` represents information about the source of a # The source context.
1442 # protobuf element, like the file in which it is defined.
1443 "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
1444 # protobuf element. For example: `"google/protobuf/source_context.proto"`.
1445 },
1446 "syntax": "A String", # The source syntax.
1447 "fields": [ # The list of fields.
1448 { # A single field of a message type.
1449 "kind": "A String", # The field type.
1450 "oneofIndex": 42, # The index of the field type in `Type.oneofs`, for message or enumeration
1451 # types. The first type has index 1; zero means the type is not in the list.
1452 "typeUrl": "A String", # The field type URL, without the scheme, for message or enumeration
1453 # types. Example: `"type.googleapis.com/google.protobuf.Timestamp"`.
1454 "name": "A String", # The field name.
1455 "defaultValue": "A String", # The string value of the default value of this field. Proto2 syntax only.
1456 "jsonName": "A String", # The field JSON name.
1457 "number": 42, # The field number.
1458 "cardinality": "A String", # The field cardinality.
1459 "options": [ # The protocol buffer options.
1460 { # A protocol buffer option, which can be attached to a message, field,
1461 # enumeration, etc.
1462 "name": "A String", # The option's name. For protobuf built-in options (options defined in
1463 # descriptor.proto), this is the short name. For example, `"map_entry"`.
1464 # For custom options, it should be the fully-qualified name. For example,
1465 # `"google.api.http"`.
1466 "value": { # The option's value packed in an Any message. If the value is a primitive,
1467 # the corresponding wrapper type defined in google/protobuf/wrappers.proto
1468 # should be used. If the value is an enum, it should be stored as an int32
1469 # value using the google.protobuf.Int32Value type.
1470 "a_key": "", # Properties of the object. Contains field @type with type URL.
1471 },
1472 },
1473 ],
1474 "packed": True or False, # Whether to use alternative packed wire representation.
1475 },
1476 ],
1477 "options": [ # The protocol buffer options.
1478 { # A protocol buffer option, which can be attached to a message, field,
1479 # enumeration, etc.
1480 "name": "A String", # The option's name. For protobuf built-in options (options defined in
1481 # descriptor.proto), this is the short name. For example, `"map_entry"`.
1482 # For custom options, it should be the fully-qualified name. For example,
1483 # `"google.api.http"`.
1484 "value": { # The option's value packed in an Any message. If the value is a primitive,
1485 # the corresponding wrapper type defined in google/protobuf/wrappers.proto
1486 # should be used. If the value is an enum, it should be stored as an int32
1487 # value using the google.protobuf.Int32Value type.
1488 "a_key": "", # Properties of the object. Contains field @type with type URL.
1489 },
1490 },
1491 ],
1492 },
1493 ],
1494 "logging": { # Logging configuration of the service. # Logging configuration.
1495 #
1496 # The following example shows how to configure logs to be sent to the
1497 # producer and consumer projects. In the example, the `activity_history`
1498 # log is sent to both the producer and consumer projects, whereas the
1499 # `purchase_history` log is only sent to the producer project.
1500 #
1501 # monitored_resources:
1502 # - type: library.googleapis.com/branch
1503 # labels:
1504 # - key: /city
1505 # description: The city where the library branch is located in.
1506 # - key: /name
1507 # description: The name of the branch.
1508 # logs:
1509 # - name: activity_history
1510 # labels:
1511 # - key: /customer_id
1512 # - name: purchase_history
1513 # logging:
1514 # producer_destinations:
1515 # - monitored_resource: library.googleapis.com/branch
1516 # logs:
1517 # - activity_history
1518 # - purchase_history
1519 # consumer_destinations:
1520 # - monitored_resource: library.googleapis.com/branch
1521 # logs:
1522 # - activity_history
1523 "producerDestinations": [ # Logging configurations for sending logs to the producer project.
1524 # There can be multiple producer destinations, each one must have a
1525 # different monitored resource type. A log can be used in at most
1526 # one producer destination.
1527 { # Configuration of a specific logging destination (the producer project
1528 # or the consumer project).
1529 "monitoredResource": "A String", # The monitored resource type. The type must be defined in the
1530 # Service.monitored_resources section.
1531 "logs": [ # Names of the logs to be sent to this destination. Each name must
1532 # be defined in the Service.logs section. If the log name is
1533 # not a domain scoped name, it will be automatically prefixed with
1534 # the service name followed by "/".
1535 "A String",
1536 ],
1537 },
1538 ],
1539 "consumerDestinations": [ # Logging configurations for sending logs to the consumer project.
1540 # There can be multiple consumer destinations, each one must have a
1541 # different monitored resource type. A log can be used in at most
1542 # one consumer destination.
1543 { # Configuration of a specific logging destination (the producer project
1544 # or the consumer project).
1545 "monitoredResource": "A String", # The monitored resource type. The type must be defined in the
1546 # Service.monitored_resources section.
1547 "logs": [ # Names of the logs to be sent to this destination. Each name must
1548 # be defined in the Service.logs section. If the log name is
1549 # not a domain scoped name, it will be automatically prefixed with
1550 # the service name followed by "/".
1551 "A String",
1552 ],
1553 },
1554 ],
1555 },
1556 "name": "A String", # The DNS address at which this service is available,
1557 # e.g. `calendar.googleapis.com`.
1558 "documentation": { # `Documentation` provides the information for describing a service. # Additional API documentation.
1559 #
1560 # Example:
1561 # <pre><code>documentation:
1562 # summary: >
1563 # The Google Calendar API gives access
1564 # to most calendar features.
1565 # pages:
1566 # - name: Overview
1567 # content: &#40;== include google/foo/overview.md ==&#41;
1568 # - name: Tutorial
1569 # content: &#40;== include google/foo/tutorial.md ==&#41;
1570 # subpages;
1571 # - name: Java
1572 # content: &#40;== include google/foo/tutorial_java.md ==&#41;
1573 # rules:
1574 # - selector: google.calendar.Calendar.Get
1575 # description: >
1576 # ...
1577 # - selector: google.calendar.Calendar.Put
1578 # description: >
1579 # ...
1580 # </code></pre>
1581 # Documentation is provided in markdown syntax. In addition to
1582 # standard markdown features, definition lists, tables and fenced
1583 # code blocks are supported. Section headers can be provided and are
1584 # interpreted relative to the section nesting of the context where
1585 # a documentation fragment is embedded.
1586 #
1587 # Documentation from the IDL is merged with documentation defined
1588 # via the config at normalization time, where documentation provided
1589 # by config rules overrides IDL provided.
1590 #
1591 # A number of constructs specific to the API platform are supported
1592 # in documentation text.
1593 #
1594 # In order to reference a proto element, the following
1595 # notation can be used:
1596 # <pre><code>&#91;fully.qualified.proto.name]&#91;]</code></pre>
1597 # To override the display text used for the link, this can be used:
1598 # <pre><code>&#91;display text]&#91;fully.qualified.proto.name]</code></pre>
1599 # Text can be excluded from doc using the following notation:
1600 # <pre><code>&#40;-- internal comment --&#41;</code></pre>
1601 # Comments can be made conditional using a visibility label. The below
1602 # text will be only rendered if the `BETA` label is available:
1603 # <pre><code>&#40;--BETA: comment for BETA users --&#41;</code></pre>
1604 # A few directives are available in documentation. Note that
1605 # directives must appear on a single line to be properly
1606 # identified. The `include` directive includes a markdown file from
1607 # an external source:
1608 # <pre><code>&#40;== include path/to/file ==&#41;</code></pre>
1609 # The `resource_for` directive marks a message to be the resource of
1610 # a collection in REST view. If it is not specified, tools attempt
1611 # to infer the resource from the operations in a collection:
1612 # <pre><code>&#40;== resource_for v1.shelves.books ==&#41;</code></pre>
1613 # The directive `suppress_warning` does not directly affect documentation
1614 # and is documented together with service config validation.
1615 "rules": [ # A list of documentation rules that apply to individual API elements.
1616 #
1617 # **NOTE:** All service configuration rules follow "last one wins" order.
1618 { # A documentation rule provides information about individual API elements.
1619 "description": "A String", # Description of the selected API(s).
1620 "deprecationDescription": "A String", # Deprecation description of the selected element(s). It can be provided if an
1621 # element is marked as `deprecated`.
1622 "selector": "A String", # The selector is a comma-separated list of patterns. Each pattern is a
1623 # qualified name of the element which may end in "*", indicating a wildcard.
1624 # Wildcards are only allowed at the end and for a whole component of the
1625 # qualified name, i.e. "foo.*" is ok, but not "foo.b*" or "foo.*.bar". To
1626 # specify a default for all applicable elements, the whole pattern "*"
1627 # is used.
1628 },
1629 ],
1630 "documentationRootUrl": "A String", # The URL to the root of documentation.
1631 "overview": "A String", # Declares a single overview page. For example:
1632 # <pre><code>documentation:
1633 # summary: ...
1634 # overview: &#40;== include overview.md ==&#41;
1635 # </code></pre>
1636 # This is a shortcut for the following declaration (using pages style):
1637 # <pre><code>documentation:
1638 # summary: ...
1639 # pages:
1640 # - name: Overview
1641 # content: &#40;== include overview.md ==&#41;
1642 # </code></pre>
1643 # Note: you cannot specify both `overview` field and `pages` field.
1644 "pages": [ # The top level pages for the documentation set.
1645 { # Represents a documentation page. A page can contain subpages to represent
1646 # nested documentation set structure.
1647 "content": "A String", # The Markdown content of the page. You can use <code>&#40;== include {path} ==&#41;</code>
1648 # to include content from a Markdown file.
1649 "subpages": [ # Subpages of this page. The order of subpages specified here will be
1650 # honored in the generated docset.
1651 # Object with schema name: Page
1652 ],
1653 "name": "A String", # The name of the page. It will be used as an identity of the page to
1654 # generate URI of the page, text of the link to this page in navigation,
1655 # etc. The full page name (start from the root page name to this page
1656 # concatenated with `.`) can be used as reference to the page in your
1657 # documentation. For example:
1658 # <pre><code>pages:
1659 # - name: Tutorial
1660 # content: &#40;== include tutorial.md ==&#41;
1661 # subpages:
1662 # - name: Java
1663 # content: &#40;== include tutorial_java.md ==&#41;
1664 # </code></pre>
1665 # You can reference `Java` page using Markdown reference link syntax:
1666 # `Java`.
1667 },
1668 ],
1669 "summary": "A String", # A short summary of what the service does. Can only be provided by
1670 # plain text.
1671 },
1672 "sourceInfo": { # Source information used to create a Service Config # Output only. The source information for this configuration if available.
1673 "sourceFiles": [ # All files used during config generation.
1674 {
1675 "a_key": "", # Properties of the object. Contains field @type with type URL.
1676 },
1677 ],
1678 },
1679 "systemTypes": [ # A list of all proto message types included in this API service.
1680 # It serves similar purpose as [google.api.Service.types], except that
1681 # these types are not needed by user-defined APIs. Therefore, they will not
1682 # show up in the generated discovery doc. This field should only be used
1683 # to define system APIs in ESF.
1684 { # A protocol buffer message type.
1685 "oneofs": [ # The list of types appearing in `oneof` definitions in this type.
1686 "A String",
1687 ],
1688 "name": "A String", # The fully qualified message name.
1689 "sourceContext": { # `SourceContext` represents information about the source of a # The source context.
1690 # protobuf element, like the file in which it is defined.
1691 "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
1692 # protobuf element. For example: `"google/protobuf/source_context.proto"`.
1693 },
1694 "syntax": "A String", # The source syntax.
1695 "fields": [ # The list of fields.
1696 { # A single field of a message type.
1697 "kind": "A String", # The field type.
1698 "oneofIndex": 42, # The index of the field type in `Type.oneofs`, for message or enumeration
1699 # types. The first type has index 1; zero means the type is not in the list.
1700 "typeUrl": "A String", # The field type URL, without the scheme, for message or enumeration
1701 # types. Example: `"type.googleapis.com/google.protobuf.Timestamp"`.
1702 "name": "A String", # The field name.
1703 "defaultValue": "A String", # The string value of the default value of this field. Proto2 syntax only.
1704 "jsonName": "A String", # The field JSON name.
1705 "number": 42, # The field number.
1706 "cardinality": "A String", # The field cardinality.
1707 "options": [ # The protocol buffer options.
1708 { # A protocol buffer option, which can be attached to a message, field,
1709 # enumeration, etc.
1710 "name": "A String", # The option's name. For protobuf built-in options (options defined in
1711 # descriptor.proto), this is the short name. For example, `"map_entry"`.
1712 # For custom options, it should be the fully-qualified name. For example,
1713 # `"google.api.http"`.
1714 "value": { # The option's value packed in an Any message. If the value is a primitive,
1715 # the corresponding wrapper type defined in google/protobuf/wrappers.proto
1716 # should be used. If the value is an enum, it should be stored as an int32
1717 # value using the google.protobuf.Int32Value type.
1718 "a_key": "", # Properties of the object. Contains field @type with type URL.
1719 },
1720 },
1721 ],
1722 "packed": True or False, # Whether to use alternative packed wire representation.
1723 },
1724 ],
1725 "options": [ # The protocol buffer options.
1726 { # A protocol buffer option, which can be attached to a message, field,
1727 # enumeration, etc.
1728 "name": "A String", # The option's name. For protobuf built-in options (options defined in
1729 # descriptor.proto), this is the short name. For example, `"map_entry"`.
1730 # For custom options, it should be the fully-qualified name. For example,
1731 # `"google.api.http"`.
1732 "value": { # The option's value packed in an Any message. If the value is a primitive,
1733 # the corresponding wrapper type defined in google/protobuf/wrappers.proto
1734 # should be used. If the value is an enum, it should be stored as an int32
1735 # value using the google.protobuf.Int32Value type.
1736 "a_key": "", # Properties of the object. Contains field @type with type URL.
1737 },
1738 },
1739 ],
1740 },
1741 ],
1742 "context": { # `Context` defines which contexts an API requests. # Context configuration.
1743 #
1744 # Example:
1745 #
1746 # context:
1747 # rules:
1748 # - selector: "*"
1749 # requested:
1750 # - google.rpc.context.ProjectContext
1751 # - google.rpc.context.OriginContext
1752 #
1753 # The above specifies that all methods in the API request
1754 # `google.rpc.context.ProjectContext` and
1755 # `google.rpc.context.OriginContext`.
1756 #
1757 # Available context types are defined in package
1758 # `google.rpc.context`.
1759 "rules": [ # A list of RPC context rules that apply to individual API methods.
1760 #
1761 # **NOTE:** All service configuration rules follow "last one wins" order.
1762 { # A context rule provides information about the context for an individual API
1763 # element.
1764 "requested": [ # A list of full type names of requested contexts.
1765 "A String",
1766 ],
1767 "provided": [ # A list of full type names of provided contexts.
1768 "A String",
1769 ],
1770 "selector": "A String", # Selects the methods to which this rule applies.
1771 #
1772 # Refer to selector for syntax details.
1773 },
1774 ],
1775 },
1776 "title": "A String", # The product title associated with this service.
1777 "endpoints": [ # Configuration for network endpoints. If this is empty, then an endpoint
1778 # with the same name as the service is automatically generated to service all
1779 # defined APIs.
1780 { # `Endpoint` describes a network endpoint that serves a set of APIs.
1781 # A service may expose any number of endpoints, and all endpoints share the
1782 # same service configuration, such as quota configuration and monitoring
1783 # configuration.
1784 #
1785 # Example service configuration:
1786 #
1787 # name: library-example.googleapis.com
1788 # endpoints:
1789 # # Below entry makes 'google.example.library.v1.Library'
1790 # # API be served from endpoint address library-example.googleapis.com.
1791 # # It also allows HTTP OPTIONS calls to be passed to the backend, for
1792 # # it to decide whether the subsequent cross-origin request is
1793 # # allowed to proceed.
1794 # - name: library-example.googleapis.com
1795 # allow_cors: true
1796 "allowCors": True or False, # Allowing
1797 # [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka
1798 # cross-domain traffic, would allow the backends served from this endpoint to
1799 # receive and respond to HTTP OPTIONS requests. The response will be used by
1800 # the browser to determine whether the subsequent cross-origin request is
1801 # allowed to proceed.
1802 "aliases": [ # DEPRECATED: This field is no longer supported. Instead of using aliases,
1803 # please specify multiple google.api.Endpoint for each of the intented
1804 # alias.
1805 #
1806 # Additional names that this endpoint will be hosted on.
1807 "A String",
1808 ],
1809 "features": [ # The list of features enabled on this endpoint.
1810 "A String",
1811 ],
1812 "name": "A String", # The canonical name of this endpoint.
1813 "apis": [ # The list of APIs served by this endpoint.
1814 "A String",
1815 ],
1816 },
1817 ],
1818 "experimental": { # Experimental service configuration. These configuration options can # Experimental configuration.
1819 # only be used by whitelisted users.
1820 "authorization": { # Configuration of authorization. # Authorization configuration.
1821 #
1822 # This section determines the authorization provider, if unspecified, then no
1823 # authorization check will be done.
1824 #
1825 # Example:
1826 #
1827 # experimental:
1828 # authorization:
1829 # provider: firebaserules.googleapis.com
1830 "provider": "A String", # The name of the authorization provider, such as
1831 # firebaserules.googleapis.com.
1832 },
1833 },
1834 },
1835 },
1836 ],
1837 "nextPageToken": "A String", # Token that can be passed to `ListEnabledServices` to resume a paginated
1838 # query.
1839 }</pre>
1840</div>
1841
1842<div class="method">
1843 <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
1844 <pre>Retrieves the next page of results.
1845
1846Args:
1847 previous_request: The request for the previous page. (required)
1848 previous_response: The response from the request for the previous page. (required)
1849
1850Returns:
1851 A request object that you can call 'execute()' on to request the next
1852 page. Returns None if there are no more items in the collection.
1853 </pre>
1854</div>
1855
1856</body></html>