blob: 99d4f8a0c57474eabda7d035783508e6f3aafe22 [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.
Sai Cheemalapatie833b792017-03-24 15:06:46 -0700395 "displayName": "A String", # Optional. A concise name for the monitored resource type that might be
396 # displayed in user interfaces. It should be a Title Cased Noun Phrase,
397 # without any article or other determiners. For example,
398 # `"Google Cloud SQL Database"`.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400399 "labels": [ # Required. A set of labels used to describe instances of this monitored
400 # resource type. For example, an individual Google Cloud SQL database is
401 # identified by values for the labels `"database_id"` and `"zone"`.
402 { # A description of a label.
403 "valueType": "A String", # The type of data that can be assigned to the label.
404 "description": "A String", # A human-readable description for the label.
405 "key": "A String", # The label key.
406 },
407 ],
Sai Cheemalapatie833b792017-03-24 15:06:46 -0700408 "type": "A String", # Required. The monitored resource type. For example, the type
409 # `"cloudsql_database"` represents databases in Google Cloud SQL.
410 # The maximum length of this value is 256 characters.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400411 "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 ],
Sai Cheemalapatie833b792017-03-24 15:06:46 -0700449 "systemParameters": { # ### System parameter configuration # System parameter configuration.
450 #
451 # A system parameter is a special kind of parameter defined by the API
452 # system, not by an individual API. It is typically mapped to an HTTP header
453 # and/or a URL query parameter. This configuration specifies which methods
454 # change the names of the system parameters.
455 "rules": [ # Define system parameters.
456 #
457 # The parameters defined here will override the default parameters
458 # implemented by the system. If this field is missing from the service
459 # config, default system parameters will be used. Default system parameters
460 # and names is implementation-dependent.
461 #
462 # Example: define api key for all methods
463 #
464 # system_parameters
465 # rules:
466 # - selector: "*"
467 # parameters:
468 # - name: api_key
469 # url_query_parameter: api_key
470 #
471 #
472 # Example: define 2 api key names for a specific method.
473 #
474 # system_parameters
475 # rules:
476 # - selector: "/ListShelves"
477 # parameters:
478 # - name: api_key
479 # http_header: Api-Key1
480 # - name: api_key
481 # http_header: Api-Key2
482 #
483 # **NOTE:** All service configuration rules follow "last one wins" order.
484 { # Define a system parameter rule mapping system parameter definitions to
485 # methods.
486 "parameters": [ # Define parameters. Multiple names may be defined for a parameter.
487 # For a given method call, only one of them should be used. If multiple
488 # names are used the behavior is implementation-dependent.
489 # If none of the specified names are present the behavior is
490 # parameter-dependent.
491 { # Define a parameter's name and location. The parameter may be passed as either
492 # an HTTP header or a URL query parameter, and if both are passed the behavior
493 # is implementation-dependent.
494 "urlQueryParameter": "A String", # Define the URL query parameter name to use for the parameter. It is case
495 # sensitive.
496 "httpHeader": "A String", # Define the HTTP header name to use for the parameter. It is case
497 # insensitive.
498 "name": "A String", # Define the name of the parameter, such as "api_key" . It is case sensitive.
499 },
500 ],
501 "selector": "A String", # Selects the methods to which this rule applies. Use '*' to indicate all
502 # methods in all APIs.
503 #
504 # Refer to selector for syntax details.
505 },
506 ],
507 },
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400508 "id": "A String", # A unique ID for a specific instance of this message, typically assigned
509 # by the client for tracking purpose. If empty, the server may choose to
510 # generate one instead.
511 "backend": { # `Backend` defines the backend configuration for a service. # API backend configuration.
512 "rules": [ # A list of API backend rules that apply to individual API methods.
513 #
514 # **NOTE:** All service configuration rules follow "last one wins" order.
515 { # A backend rule provides configuration for an individual API element.
516 "selector": "A String", # Selects the methods to which this rule applies.
517 #
518 # Refer to selector for syntax details.
519 "deadline": 3.14, # The number of seconds to wait for a response from a request. The
520 # default depends on the deployment context.
521 "address": "A String", # The address of the API backend.
522 },
523 ],
524 },
525 "monitoring": { # Monitoring configuration of the service. # Monitoring configuration.
526 #
527 # The example below shows how to configure monitored resources and metrics
528 # for monitoring. In the example, a monitored resource and two metrics are
529 # defined. The `library.googleapis.com/book/returned_count` metric is sent
530 # to both producer and consumer projects, whereas the
531 # `library.googleapis.com/book/overdue_count` metric is only sent to the
532 # consumer project.
533 #
534 # monitored_resources:
535 # - type: library.googleapis.com/branch
536 # labels:
537 # - key: /city
538 # description: The city where the library branch is located in.
539 # - key: /name
540 # description: The name of the branch.
541 # metrics:
542 # - name: library.googleapis.com/book/returned_count
543 # metric_kind: DELTA
544 # value_type: INT64
545 # labels:
546 # - key: /customer_id
547 # - name: library.googleapis.com/book/overdue_count
548 # metric_kind: GAUGE
549 # value_type: INT64
550 # labels:
551 # - key: /customer_id
552 # monitoring:
553 # producer_destinations:
554 # - monitored_resource: library.googleapis.com/branch
555 # metrics:
556 # - library.googleapis.com/book/returned_count
557 # consumer_destinations:
558 # - monitored_resource: library.googleapis.com/branch
559 # metrics:
560 # - library.googleapis.com/book/returned_count
561 # - library.googleapis.com/book/overdue_count
562 "producerDestinations": [ # Monitoring configurations for sending metrics to the producer project.
563 # There can be multiple producer destinations, each one must have a
564 # different monitored resource type. A metric can be used in at most
565 # one producer destination.
566 { # Configuration of a specific monitoring destination (the producer project
567 # or the consumer project).
568 "monitoredResource": "A String", # The monitored resource type. The type must be defined in
569 # Service.monitored_resources section.
570 "metrics": [ # Names of the metrics to report to this monitoring destination.
571 # Each name must be defined in Service.metrics section.
572 "A String",
573 ],
574 },
575 ],
576 "consumerDestinations": [ # Monitoring configurations for sending metrics to the consumer project.
577 # There can be multiple consumer destinations, each one must have a
578 # different monitored resource type. A metric can be used in at most
579 # one consumer destination.
580 { # Configuration of a specific monitoring destination (the producer project
581 # or the consumer project).
582 "monitoredResource": "A String", # The monitored resource type. The type must be defined in
583 # Service.monitored_resources section.
584 "metrics": [ # Names of the metrics to report to this monitoring destination.
585 # Each name must be defined in Service.metrics section.
586 "A String",
587 ],
588 },
589 ],
590 },
Sai Cheemalapatie833b792017-03-24 15:06:46 -0700591 "title": "A String", # The product title associated with this service.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400592 "authentication": { # `Authentication` defines the authentication configuration for an API. # Auth configuration.
593 #
594 # Example for an API targeted for external use:
595 #
596 # name: calendar.googleapis.com
597 # authentication:
598 # providers:
599 # - id: google_calendar_auth
600 # jwks_uri: https://www.googleapis.com/oauth2/v1/certs
601 # issuer: https://securetoken.google.com
602 # rules:
603 # - selector: "*"
604 # requirements:
605 # provider_id: google_calendar_auth
606 "rules": [ # A list of authentication rules that apply to individual API methods.
607 #
608 # **NOTE:** All service configuration rules follow "last one wins" order.
609 { # Authentication rules for the service.
610 #
611 # By default, if a method has any authentication requirements, every request
612 # must include a valid credential matching one of the requirements.
613 # It's an error to include more than one kind of credential in a single
614 # request.
615 #
616 # If a method doesn't have any auth requirements, request credentials will be
617 # ignored.
618 "oauth": { # OAuth scopes are a way to define data and permissions on data. For example, # The requirements for OAuth credentials.
619 # there are scopes defined for "Read-only access to Google Calendar" and
620 # "Access to Cloud Platform". Users can consent to a scope for an application,
621 # giving it permission to access that data on their behalf.
622 #
623 # OAuth scope specifications should be fairly coarse grained; a user will need
624 # to see and understand the text description of what your scope means.
625 #
626 # In most cases: use one or at most two OAuth scopes for an entire family of
627 # products. If your product has multiple APIs, you should probably be sharing
628 # the OAuth scope across all of those APIs.
629 #
630 # When you need finer grained OAuth consent screens: talk with your product
631 # management about how developers will use them in practice.
632 #
633 # Please note that even though each of the canonical scopes is enough for a
634 # request to be accepted and passed to the backend, a request can still fail
635 # due to the backend requiring additional scopes or permissions.
636 "canonicalScopes": "A String", # The list of publicly documented OAuth scopes that are allowed access. An
637 # OAuth token containing any of these scopes will be accepted.
638 #
639 # Example:
640 #
641 # canonical_scopes: https://www.googleapis.com/auth/calendar,
642 # https://www.googleapis.com/auth/calendar.read
643 },
Sai Cheemalapatie833b792017-03-24 15:06:46 -0700644 "allowWithoutCredential": True or False, # Whether to allow requests without a credential. The credential can be
645 # an OAuth token, Google cookies (first-party auth) or EndUserCreds.
646 #
647 # For requests without credentials, if the service control environment is
648 # specified, each incoming request **must** be associated with a service
649 # consumer. This can be done by passing an API key that belongs to a consumer
650 # project.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400651 "requirements": [ # Requirements for additional authentication providers.
652 { # User-defined authentication requirements, including support for
653 # [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
654 "providerId": "A String", # id from authentication provider.
655 #
656 # Example:
657 #
658 # provider_id: bookstore_auth
659 "audiences": "A String", # NOTE: This will be deprecated soon, once AuthProvider.audiences is
660 # implemented and accepted in all the runtime components.
661 #
662 # The list of JWT
663 # [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).
664 # that are allowed to access. A JWT containing any of these audiences will
665 # be accepted. When this setting is absent, only JWTs with audience
666 # "https://Service_name/API_name"
667 # will be accepted. For example, if no audiences are in the setting,
668 # LibraryService API will only accept JWTs with the following audience
669 # "https://library-example.googleapis.com/google.example.library.v1.LibraryService".
670 #
671 # Example:
672 #
673 # audiences: bookstore_android.apps.googleusercontent.com,
674 # bookstore_web.apps.googleusercontent.com
675 },
676 ],
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400677 "selector": "A String", # Selects the methods to which this rule applies.
678 #
679 # Refer to selector for syntax details.
680 },
681 ],
682 "providers": [ # Defines a set of authentication providers that a service supports.
683 { # Configuration for an anthentication provider, including support for
684 # [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
685 "audiences": "A String", # The list of JWT
686 # [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).
687 # that are allowed to access. A JWT containing any of these audiences will
688 # be accepted. When this setting is absent, only JWTs with audience
689 # "https://Service_name/API_name"
690 # will be accepted. For example, if no audiences are in the setting,
691 # LibraryService API will only accept JWTs with the following audience
692 # "https://library-example.googleapis.com/google.example.library.v1.LibraryService".
693 #
694 # Example:
695 #
696 # audiences: bookstore_android.apps.googleusercontent.com,
697 # bookstore_web.apps.googleusercontent.com
698 "jwksUri": "A String", # URL of the provider's public key set to validate signature of the JWT. See
699 # [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata).
700 # Optional if the key set document:
701 # - can be retrieved from
702 # [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html
703 # of the issuer.
704 # - can be inferred from the email domain of the issuer (e.g. a Google service account).
705 #
706 # Example: https://www.googleapis.com/oauth2/v1/certs
707 "id": "A String", # The unique identifier of the auth provider. It will be referred to by
708 # `AuthRequirement.provider_id`.
709 #
710 # Example: "bookstore_auth".
711 "issuer": "A String", # Identifies the principal that issued the JWT. See
712 # https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.1
713 # Usually a URL or an email address.
714 #
715 # Example: https://securetoken.google.com
716 # Example: 1234567-compute@developer.gserviceaccount.com
717 },
718 ],
719 },
720 "usage": { # Configuration controlling usage of a service. # Configuration controlling usage of this service.
721 "rules": [ # A list of usage rules that apply to individual API methods.
722 #
723 # **NOTE:** All service configuration rules follow "last one wins" order.
724 { # Usage configuration rules for the service.
725 #
726 # NOTE: Under development.
727 #
728 #
729 # Use this rule to configure unregistered calls for the service. Unregistered
730 # calls are calls that do not contain consumer project identity.
731 # (Example: calls that do not contain an API key).
732 # By default, API methods do not allow unregistered calls, and each method call
733 # must be identified by a consumer project identity. Use this rule to
734 # allow/disallow unregistered calls.
735 #
736 # Example of an API that wants to allow unregistered calls for entire service.
737 #
738 # usage:
739 # rules:
740 # - selector: "*"
741 # allow_unregistered_calls: true
742 #
743 # Example of a method that wants to allow unregistered calls.
744 #
745 # usage:
746 # rules:
747 # - selector: "google.example.library.v1.LibraryService.CreateBook"
748 # allow_unregistered_calls: true
749 "selector": "A String", # Selects the methods to which this rule applies. Use '*' to indicate all
750 # methods in all APIs.
751 #
752 # Refer to selector for syntax details.
753 "allowUnregisteredCalls": True or False, # True, if the method allows unregistered calls; false otherwise.
754 },
755 ],
756 "producerNotificationChannel": "A String", # The full resource name of a channel used for sending notifications to the
757 # service producer.
758 #
759 # Google Service Management currently only supports
760 # [Google Cloud Pub/Sub](https://cloud.google.com/pubsub) as a notification
761 # channel. To use Google Cloud Pub/Sub as the channel, this must be the name
762 # of a Cloud Pub/Sub topic that uses the Cloud Pub/Sub topic name format
763 # documented in https://cloud.google.com/pubsub/docs/overview.
764 "requirements": [ # Requirements that must be satisfied before a consumer project can use the
765 # service. Each requirement is of the form <service.name>/<requirement-id>;
766 # for example 'serviceusage.googleapis.com/billing-enabled'.
767 "A String",
768 ],
769 },
770 "configVersion": 42, # The version of the service configuration. The config version may
771 # influence interpretation of the configuration, for example, to
772 # determine defaults. This is documented together with applicable
773 # options. The current default for the config version itself is `3`.
774 "producerProjectId": "A String", # The id of the Google developer project that owns the service.
775 # Members of this project can manage the service configuration,
776 # manage consumption of the service, etc.
777 "http": { # Defines the HTTP configuration for a service. It contains a list of # HTTP configuration.
778 # HttpRule, each specifying the mapping of an RPC method
779 # to one or more HTTP REST API methods.
780 "rules": [ # A list of HTTP configuration rules that apply to individual API methods.
781 #
782 # **NOTE:** All service configuration rules follow "last one wins" order.
783 { # `HttpRule` defines the mapping of an RPC method to one or more HTTP
784 # REST APIs. The mapping determines what portions of the request
785 # message are populated from the path, query parameters, or body of
786 # the HTTP request. The mapping is typically specified as an
787 # `google.api.http` annotation, see "google/api/annotations.proto"
788 # for details.
789 #
790 # The mapping consists of a field specifying the path template and
791 # method kind. The path template can refer to fields in the request
792 # message, as in the example below which describes a REST GET
793 # operation on a resource collection of messages:
794 #
795 #
796 # service Messaging {
797 # rpc GetMessage(GetMessageRequest) returns (Message) {
798 # option (google.api.http).get = "/v1/messages/{message_id}/{sub.subfield}";
799 # }
800 # }
801 # message GetMessageRequest {
802 # message SubMessage {
803 # string subfield = 1;
804 # }
805 # string message_id = 1; // mapped to the URL
806 # SubMessage sub = 2; // `sub.subfield` is url-mapped
807 # }
808 # message Message {
809 # string text = 1; // content of the resource
810 # }
811 #
812 # The same http annotation can alternatively be expressed inside the
813 # `GRPC API Configuration` YAML file.
814 #
815 # http:
816 # rules:
817 # - selector: <proto_package_name>.Messaging.GetMessage
818 # get: /v1/messages/{message_id}/{sub.subfield}
819 #
820 # This definition enables an automatic, bidrectional mapping of HTTP
821 # JSON to RPC. Example:
822 #
823 # HTTP | RPC
824 # -----|-----
825 # `GET /v1/messages/123456/foo` | `GetMessage(message_id: "123456" sub: SubMessage(subfield: "foo"))`
826 #
827 # In general, not only fields but also field paths can be referenced
828 # from a path pattern. Fields mapped to the path pattern cannot be
829 # repeated and must have a primitive (non-message) type.
830 #
831 # Any fields in the request message which are not bound by the path
832 # pattern automatically become (optional) HTTP query
833 # parameters. Assume the following definition of the request message:
834 #
835 #
836 # message GetMessageRequest {
837 # message SubMessage {
838 # string subfield = 1;
839 # }
840 # string message_id = 1; // mapped to the URL
841 # int64 revision = 2; // becomes a parameter
842 # SubMessage sub = 3; // `sub.subfield` becomes a parameter
843 # }
844 #
845 #
846 # This enables a HTTP JSON to RPC mapping as below:
847 #
848 # HTTP | RPC
849 # -----|-----
850 # `GET /v1/messages/123456?revision=2&sub.subfield=foo` | `GetMessage(message_id: "123456" revision: 2 sub: SubMessage(subfield: "foo"))`
851 #
852 # Note that fields which are mapped to HTTP parameters must have a
853 # primitive type or a repeated primitive type. Message types are not
854 # allowed. In the case of a repeated type, the parameter can be
855 # repeated in the URL, as in `...?param=A&param=B`.
856 #
857 # For HTTP method kinds which allow a request body, the `body` field
858 # specifies the mapping. Consider a REST update method on the
859 # message resource collection:
860 #
861 #
862 # service Messaging {
863 # rpc UpdateMessage(UpdateMessageRequest) returns (Message) {
864 # option (google.api.http) = {
865 # put: "/v1/messages/{message_id}"
866 # body: "message"
867 # };
868 # }
869 # }
870 # message UpdateMessageRequest {
871 # string message_id = 1; // mapped to the URL
872 # Message message = 2; // mapped to the body
873 # }
874 #
875 #
876 # The following HTTP JSON to RPC mapping is enabled, where the
877 # representation of the JSON in the request body is determined by
878 # protos JSON encoding:
879 #
880 # HTTP | RPC
881 # -----|-----
882 # `PUT /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: "123456" message { text: "Hi!" })`
883 #
884 # The special name `*` can be used in the body mapping to define that
885 # every field not bound by the path template should be mapped to the
886 # request body. This enables the following alternative definition of
887 # the update method:
888 #
889 # service Messaging {
890 # rpc UpdateMessage(Message) returns (Message) {
891 # option (google.api.http) = {
892 # put: "/v1/messages/{message_id}"
893 # body: "*"
894 # };
895 # }
896 # }
897 # message Message {
898 # string message_id = 1;
899 # string text = 2;
900 # }
901 #
902 #
903 # The following HTTP JSON to RPC mapping is enabled:
904 #
905 # HTTP | RPC
906 # -----|-----
907 # `PUT /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: "123456" text: "Hi!")`
908 #
909 # Note that when using `*` in the body mapping, it is not possible to
910 # have HTTP parameters, as all fields not bound by the path end in
911 # the body. This makes this option more rarely used in practice of
912 # defining REST APIs. The common usage of `*` is in custom methods
913 # which don't use the URL at all for transferring data.
914 #
915 # It is possible to define multiple HTTP methods for one RPC by using
916 # the `additional_bindings` option. Example:
917 #
918 # service Messaging {
919 # rpc GetMessage(GetMessageRequest) returns (Message) {
920 # option (google.api.http) = {
921 # get: "/v1/messages/{message_id}"
922 # additional_bindings {
923 # get: "/v1/users/{user_id}/messages/{message_id}"
924 # }
925 # };
926 # }
927 # }
928 # message GetMessageRequest {
929 # string message_id = 1;
930 # string user_id = 2;
931 # }
932 #
933 #
934 # This enables the following two alternative HTTP JSON to RPC
935 # mappings:
936 #
937 # HTTP | RPC
938 # -----|-----
939 # `GET /v1/messages/123456` | `GetMessage(message_id: "123456")`
940 # `GET /v1/users/me/messages/123456` | `GetMessage(user_id: "me" message_id: "123456")`
941 #
942 # # Rules for HTTP mapping
943 #
944 # The rules for mapping HTTP path, query parameters, and body fields
945 # to the request message are as follows:
946 #
947 # 1. The `body` field specifies either `*` or a field path, or is
948 # omitted. If omitted, it assumes there is no HTTP body.
949 # 2. Leaf fields (recursive expansion of nested messages in the
950 # request) can be classified into three types:
951 # (a) Matched in the URL template.
952 # (b) Covered by body (if body is `*`, everything except (a) fields;
953 # else everything under the body field)
954 # (c) All other fields.
955 # 3. URL query parameters found in the HTTP request are mapped to (c) fields.
956 # 4. Any body sent with an HTTP request can contain only (b) fields.
957 #
958 # The syntax of the path template is as follows:
959 #
960 # Template = "/" Segments [ Verb ] ;
961 # Segments = Segment { "/" Segment } ;
962 # Segment = "*" | "**" | LITERAL | Variable ;
963 # Variable = "{" FieldPath [ "=" Segments ] "}" ;
964 # FieldPath = IDENT { "." IDENT } ;
965 # Verb = ":" LITERAL ;
966 #
967 # The syntax `*` matches a single path segment. It follows the semantics of
968 # [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2 Simple String
969 # Expansion.
970 #
971 # The syntax `**` matches zero or more path segments. It follows the semantics
972 # of [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.3 Reserved
973 # Expansion. NOTE: it must be the last segment in the path except the Verb.
974 #
975 # The syntax `LITERAL` matches literal text in the URL path.
976 #
977 # The syntax `Variable` matches the entire path as specified by its template;
978 # this nested template must not contain further variables. If a variable
979 # matches a single path segment, its template may be omitted, e.g. `{var}`
980 # is equivalent to `{var=*}`.
981 #
982 # NOTE: the field paths in variables and in the `body` must not refer to
983 # repeated fields or map fields.
984 #
985 # Use CustomHttpPattern to specify any HTTP method that is not included in the
986 # `pattern` field, such as HEAD, or "*" to leave the HTTP method unspecified for
987 # a given URL path rule. The wild-card rule is useful for services that provide
988 # content to Web (HTML) clients.
989 "body": "A String", # The name of the request field whose value is mapped to the HTTP body, or
990 # `*` for mapping all fields not captured by the path pattern to the HTTP
991 # body. NOTE: the referred field must not be a repeated field and must be
992 # present at the top-level of request message type.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400993 "get": "A String", # Used for listing and getting information about resources.
994 "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.
995 # For media support, add instead [][google.bytestream.RestByteStream] as an
996 # API to your configuration.
997 # Bytestream, add instead [][google.bytestream.RestByteStream] as an API to
998 # your configuration for Bytestream methods.
999 "enabled": True or False, # Whether download is enabled.
1000 "downloadService": "A String", # DO NOT USE THIS FIELD UNTIL THIS WARNING IS REMOVED.
1001 #
1002 # Specify name of the download service if one is used for download.
1003 },
1004 "additionalBindings": [ # Additional HTTP bindings for the selector. Nested bindings must
1005 # not contain an `additional_bindings` field themselves (that is,
1006 # the nesting may only be one level deep).
1007 # Object with schema name: HttpRule
1008 ],
1009 "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
1010 # Bytestream, add instead
1011 # [][google.bytestream.RestByteStream] as an API to your
1012 # configuration for Bytestream methods.
1013 # Bytestream, add instead [][google.bytestream.RestByteStream] as an API to
1014 # your configuration for Bytestream methods.
1015 "enabled": True or False, # Whether upload is enabled.
1016 "uploadService": "A String", # DO NOT USE THIS FIELD UNTIL THIS WARNING IS REMOVED.
1017 #
1018 # Specify name of the upload service if one is used for upload.
1019 },
Sai Cheemalapatie833b792017-03-24 15:06:46 -07001020 "selector": "A String", # Selects methods to which this rule applies.
1021 #
1022 # Refer to selector for syntax details.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001023 "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.
Sai Cheemalapatie833b792017-03-24 15:06:46 -07001029 "patch": "A String", # Used for updating a resource.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001030 "post": "A String", # Used for creating a resource.
1031 "custom": { # A custom pattern is used for defining custom HTTP verb. # Custom pattern is used for defining custom verbs.
1032 "path": "A String", # The path matched by this custom verb.
1033 "kind": "A String", # The name of this custom HTTP verb.
1034 },
1035 "delete": "A String", # Used for deleting a resource.
1036 },
1037 ],
1038 },
1039 "apis": [ # A list of API interfaces exported by this service. Only the `name` field
1040 # of the google.protobuf.Api needs to be provided by the configuration
1041 # author, as the remaining fields will be derived from the IDL during the
1042 # normalization process. It is an error to specify an API interface here
1043 # which cannot be resolved against the associated IDL files.
1044 { # Api is a light-weight descriptor for a protocol buffer service.
Sai Cheemalapatie833b792017-03-24 15:06:46 -07001045 "methods": [ # The methods of this api, in unspecified order.
1046 { # Method represents a method of an api.
1047 "name": "A String", # The simple name of this method.
1048 "requestStreaming": True or False, # If true, the request is streamed.
1049 "responseTypeUrl": "A String", # The URL of the output message type.
1050 "requestTypeUrl": "A String", # A URL of the input message type.
1051 "responseStreaming": True or False, # If true, the response is streamed.
1052 "syntax": "A String", # The source syntax of this method.
1053 "options": [ # Any metadata attached to the method.
1054 { # A protocol buffer option, which can be attached to a message, field,
1055 # enumeration, etc.
1056 "name": "A String", # The option's name. For protobuf built-in options (options defined in
1057 # descriptor.proto), this is the short name. For example, `"map_entry"`.
1058 # For custom options, it should be the fully-qualified name. For example,
1059 # `"google.api.http"`.
1060 "value": { # The option's value packed in an Any message. If the value is a primitive,
1061 # the corresponding wrapper type defined in google/protobuf/wrappers.proto
1062 # should be used. If the value is an enum, it should be stored as an int32
1063 # value using the google.protobuf.Int32Value type.
1064 "a_key": "", # Properties of the object. Contains field @type with type URL.
1065 },
1066 },
1067 ],
1068 },
1069 ],
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001070 "sourceContext": { # `SourceContext` represents information about the source of a # Source context for the protocol buffer service represented by this
1071 # message.
1072 # protobuf element, like the file in which it is defined.
1073 "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
1074 # protobuf element. For example: `"google/protobuf/source_context.proto"`.
1075 },
1076 "mixins": [ # Included APIs. See Mixin.
1077 { # Declares an API to be included in this API. The including API must
1078 # redeclare all the methods from the included API, but documentation
1079 # and options are inherited as follows:
1080 #
1081 # - If after comment and whitespace stripping, the documentation
1082 # string of the redeclared method is empty, it will be inherited
1083 # from the original method.
1084 #
1085 # - Each annotation belonging to the service config (http,
1086 # visibility) which is not set in the redeclared method will be
1087 # inherited.
1088 #
1089 # - If an http annotation is inherited, the path pattern will be
1090 # modified as follows. Any version prefix will be replaced by the
1091 # version of the including API plus the root path if specified.
1092 #
1093 # Example of a simple mixin:
1094 #
1095 # package google.acl.v1;
1096 # service AccessControl {
1097 # // Get the underlying ACL object.
1098 # rpc GetAcl(GetAclRequest) returns (Acl) {
1099 # option (google.api.http).get = "/v1/{resource=**}:getAcl";
1100 # }
1101 # }
1102 #
1103 # package google.storage.v2;
1104 # service Storage {
1105 # // rpc GetAcl(GetAclRequest) returns (Acl);
1106 #
1107 # // Get a data record.
1108 # rpc GetData(GetDataRequest) returns (Data) {
1109 # option (google.api.http).get = "/v2/{resource=**}";
1110 # }
1111 # }
1112 #
1113 # Example of a mixin configuration:
1114 #
1115 # apis:
1116 # - name: google.storage.v2.Storage
1117 # mixins:
1118 # - name: google.acl.v1.AccessControl
1119 #
1120 # The mixin construct implies that all methods in `AccessControl` are
1121 # also declared with same name and request/response types in
1122 # `Storage`. A documentation generator or annotation processor will
1123 # see the effective `Storage.GetAcl` method after inherting
1124 # documentation and annotations as follows:
1125 #
1126 # service Storage {
1127 # // Get the underlying ACL object.
1128 # rpc GetAcl(GetAclRequest) returns (Acl) {
1129 # option (google.api.http).get = "/v2/{resource=**}:getAcl";
1130 # }
1131 # ...
1132 # }
1133 #
1134 # Note how the version in the path pattern changed from `v1` to `v2`.
1135 #
1136 # If the `root` field in the mixin is specified, it should be a
1137 # relative path under which inherited HTTP paths are placed. Example:
1138 #
1139 # apis:
1140 # - name: google.storage.v2.Storage
1141 # mixins:
1142 # - name: google.acl.v1.AccessControl
1143 # root: acls
1144 #
1145 # This implies the following inherited HTTP annotation:
1146 #
1147 # service Storage {
1148 # // Get the underlying ACL object.
1149 # rpc GetAcl(GetAclRequest) returns (Acl) {
1150 # option (google.api.http).get = "/v2/acls/{resource=**}:getAcl";
1151 # }
1152 # ...
1153 # }
1154 "root": "A String", # If non-empty specifies a path under which inherited HTTP paths
1155 # are rooted.
1156 "name": "A String", # The fully qualified name of the API which is included.
1157 },
1158 ],
1159 "syntax": "A String", # The source syntax of the service.
1160 "version": "A String", # A version string for this api. If specified, must have the form
1161 # `major-version.minor-version`, as in `1.10`. If the minor version
1162 # is omitted, it defaults to zero. If the entire version field is
1163 # empty, the major version is derived from the package name, as
1164 # outlined below. If the field is not empty, the version in the
1165 # package name will be verified to be consistent with what is
1166 # provided here.
1167 #
1168 # The versioning schema uses [semantic
1169 # versioning](http://semver.org) where the major version number
1170 # indicates a breaking change and the minor version an additive,
1171 # non-breaking change. Both version numbers are signals to users
1172 # what to expect from different versions, and should be carefully
1173 # chosen based on the product plan.
1174 #
1175 # The major version is also reflected in the package name of the
1176 # API, which must end in `v<major-version>`, as in
1177 # `google.feature.v1`. For major versions 0 and 1, the suffix can
1178 # be omitted. Zero major versions must only be used for
1179 # experimental, none-GA apis.
1180 "options": [ # Any metadata attached to the API.
1181 { # A protocol buffer option, which can be attached to a message, field,
1182 # enumeration, etc.
1183 "name": "A String", # The option's name. For protobuf built-in options (options defined in
1184 # descriptor.proto), this is the short name. For example, `"map_entry"`.
1185 # For custom options, it should be the fully-qualified name. For example,
1186 # `"google.api.http"`.
1187 "value": { # The option's value packed in an Any message. If the value is a primitive,
1188 # the corresponding wrapper type defined in google/protobuf/wrappers.proto
1189 # should be used. If the value is an enum, it should be stored as an int32
1190 # value using the google.protobuf.Int32Value type.
1191 "a_key": "", # Properties of the object. Contains field @type with type URL.
1192 },
1193 },
1194 ],
Sai Cheemalapatie833b792017-03-24 15:06:46 -07001195 "name": "A String", # The fully qualified name of this api, including package name
1196 # followed by the api's simple name.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001197 },
1198 ],
1199 "customError": { # Customize service error responses. For example, list any service # Custom error configuration.
1200 # specific protobuf types that can appear in error detail lists of
1201 # error responses.
1202 #
1203 # Example:
1204 #
1205 # custom_error:
1206 # types:
1207 # - google.foo.v1.CustomError
1208 # - google.foo.v1.AnotherError
1209 "rules": [ # The list of custom error rules that apply to individual API messages.
1210 #
1211 # **NOTE:** All service configuration rules follow "last one wins" order.
1212 { # A custom error rule.
1213 "isErrorType": True or False, # Mark this message as possible payload in error response. Otherwise,
1214 # objects of this type will be filtered when they appear in error payload.
1215 "selector": "A String", # Selects messages to which this rule applies.
1216 #
1217 # Refer to selector for syntax details.
1218 },
1219 ],
1220 "types": [ # The list of custom error detail types, e.g. 'google.foo.v1.CustomError'.
1221 "A String",
1222 ],
1223 },
1224 "visibility": { # `Visibility` defines restrictions for the visibility of service # API visibility configuration.
1225 # elements. Restrictions are specified using visibility labels
1226 # (e.g., TRUSTED_TESTER) that are elsewhere linked to users and projects.
1227 #
1228 # Users and projects can have access to more than one visibility label. The
1229 # effective visibility for multiple labels is the union of each label's
1230 # elements, plus any unrestricted elements.
1231 #
1232 # If an element and its parents have no restrictions, visibility is
1233 # unconditionally granted.
1234 #
1235 # Example:
1236 #
1237 # visibility:
1238 # rules:
1239 # - selector: google.calendar.Calendar.EnhancedSearch
1240 # restriction: TRUSTED_TESTER
1241 # - selector: google.calendar.Calendar.Delegate
1242 # restriction: GOOGLE_INTERNAL
1243 #
1244 # Here, all methods are publicly visible except for the restricted methods
1245 # EnhancedSearch and Delegate.
1246 "rules": [ # A list of visibility rules that apply to individual API elements.
1247 #
1248 # **NOTE:** All service configuration rules follow "last one wins" order.
1249 { # A visibility rule provides visibility configuration for an individual API
1250 # element.
1251 "restriction": "A String", # A comma-separated list of visibility labels that apply to the `selector`.
1252 # Any of the listed labels can be used to grant the visibility.
1253 #
1254 # If a rule has multiple labels, removing one of the labels but not all of
1255 # them can break clients.
1256 #
1257 # Example:
1258 #
1259 # visibility:
1260 # rules:
1261 # - selector: google.calendar.Calendar.EnhancedSearch
1262 # restriction: GOOGLE_INTERNAL, TRUSTED_TESTER
1263 #
1264 # Removing GOOGLE_INTERNAL from this restriction will break clients that
1265 # rely on this method and only had access to it through GOOGLE_INTERNAL.
1266 "selector": "A String", # Selects methods, messages, fields, enums, etc. to which this rule applies.
1267 #
1268 # Refer to selector for syntax details.
1269 },
1270 ],
1271 },
1272 "metrics": [ # Defines the metrics used by this service.
1273 { # Defines a metric type and its schema. Once a metric descriptor is created,
1274 # deleting or altering it stops data collection and makes the metric type's
1275 # existing data unusable.
1276 "displayName": "A String", # A concise name for the metric, which can be displayed in user interfaces.
1277 # Use sentence case without an ending period, for example "Request count".
1278 "description": "A String", # A detailed description of the metric, which can be used in documentation.
1279 "metricKind": "A String", # Whether the metric records instantaneous values, changes to a value, etc.
1280 # Some combinations of `metric_kind` and `value_type` might not be supported.
1281 "valueType": "A String", # Whether the measurement is an integer, a floating-point number, etc.
1282 # Some combinations of `metric_kind` and `value_type` might not be supported.
1283 "labels": [ # The set of labels that can be used to describe a specific
1284 # instance of this metric type. For example, the
1285 # `appengine.googleapis.com/http/server/response_latencies` metric
1286 # type has a label for the HTTP response code, `response_code`, so
1287 # you can look at latencies for successful responses or just
1288 # for responses that failed.
1289 { # A description of a label.
1290 "valueType": "A String", # The type of data that can be assigned to the label.
1291 "description": "A String", # A human-readable description for the label.
1292 "key": "A String", # The label key.
1293 },
1294 ],
1295 "type": "A String", # The metric type, including its DNS name prefix. The type is not
1296 # URL-encoded. All user-defined custom metric types have the DNS name
1297 # `custom.googleapis.com`. Metric types should use a natural hierarchical
1298 # grouping. For example:
1299 #
1300 # "custom.googleapis.com/invoice/paid/amount"
1301 # "appengine.googleapis.com/http/server/response_latencies"
1302 "unit": "A String", # The unit in which the metric value is reported. It is only applicable
1303 # if the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The
1304 # supported units are a subset of [The Unified Code for Units of
1305 # Measure](http://unitsofmeasure.org/ucum.html) standard:
1306 #
1307 # **Basic units (UNIT)**
1308 #
1309 # * `bit` bit
1310 # * `By` byte
1311 # * `s` second
1312 # * `min` minute
1313 # * `h` hour
1314 # * `d` day
1315 #
1316 # **Prefixes (PREFIX)**
1317 #
1318 # * `k` kilo (10**3)
1319 # * `M` mega (10**6)
1320 # * `G` giga (10**9)
1321 # * `T` tera (10**12)
1322 # * `P` peta (10**15)
1323 # * `E` exa (10**18)
1324 # * `Z` zetta (10**21)
1325 # * `Y` yotta (10**24)
1326 # * `m` milli (10**-3)
1327 # * `u` micro (10**-6)
1328 # * `n` nano (10**-9)
1329 # * `p` pico (10**-12)
1330 # * `f` femto (10**-15)
1331 # * `a` atto (10**-18)
1332 # * `z` zepto (10**-21)
1333 # * `y` yocto (10**-24)
1334 # * `Ki` kibi (2**10)
1335 # * `Mi` mebi (2**20)
1336 # * `Gi` gibi (2**30)
1337 # * `Ti` tebi (2**40)
1338 #
1339 # **Grammar**
1340 #
1341 # The grammar includes the dimensionless unit `1`, such as `1/s`.
1342 #
1343 # The grammar also includes these connectors:
1344 #
1345 # * `/` division (as an infix operator, e.g. `1/s`).
1346 # * `.` multiplication (as an infix operator, e.g. `GBy.d`)
1347 #
1348 # The grammar for a unit is as follows:
1349 #
1350 # Expression = Component { "." Component } { "/" Component } ;
1351 #
1352 # Component = [ PREFIX ] UNIT [ Annotation ]
1353 # | Annotation
1354 # | "1"
1355 # ;
1356 #
1357 # Annotation = "{" NAME "}" ;
1358 #
1359 # Notes:
1360 #
1361 # * `Annotation` is just a comment if it follows a `UNIT` and is
1362 # equivalent to `1` if it is used alone. For examples,
1363 # `{requests}/s == 1/s`, `By{transmitted}/s == By/s`.
1364 # * `NAME` is a sequence of non-blank printable ASCII characters not
1365 # containing '{' or '}'.
1366 "name": "A String", # The resource name of the metric descriptor. Depending on the
1367 # implementation, the name typically includes: (1) the parent resource name
1368 # that defines the scope of the metric type or of its data; and (2) the
1369 # metric's URL-encoded type, which also appears in the `type` field of this
1370 # descriptor. For example, following is the resource name of a custom
1371 # metric within the GCP project `my-project-id`:
1372 #
1373 # "projects/my-project-id/metricDescriptors/custom.googleapis.com%2Finvoice%2Fpaid%2Famount"
1374 },
1375 ],
1376 "enums": [ # A list of all enum types included in this API service. Enums
1377 # referenced directly or indirectly by the `apis` are automatically
1378 # included. Enums which are not referenced but shall be included
1379 # should be listed here by name. Example:
1380 #
1381 # enums:
1382 # - name: google.someapi.v1.SomeEnum
1383 { # Enum type definition.
Sai Cheemalapatie833b792017-03-24 15:06:46 -07001384 "syntax": "A String", # The source syntax.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001385 "sourceContext": { # `SourceContext` represents information about the source of a # The source context.
1386 # protobuf element, like the file in which it is defined.
1387 "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
1388 # protobuf element. For example: `"google/protobuf/source_context.proto"`.
1389 },
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001390 "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 "name": "A String", # Enum type name.
Sai Cheemalapatie833b792017-03-24 15:06:46 -07001406 "enumvalue": [ # Enum value definitions.
1407 { # Enum value definition.
1408 "number": 42, # Enum value number.
1409 "name": "A String", # Enum value name.
1410 "options": [ # Protocol buffer options.
1411 { # A protocol buffer option, which can be attached to a message, field,
1412 # enumeration, etc.
1413 "name": "A String", # The option's name. For protobuf built-in options (options defined in
1414 # descriptor.proto), this is the short name. For example, `"map_entry"`.
1415 # For custom options, it should be the fully-qualified name. For example,
1416 # `"google.api.http"`.
1417 "value": { # The option's value packed in an Any message. If the value is a primitive,
1418 # the corresponding wrapper type defined in google/protobuf/wrappers.proto
1419 # should be used. If the value is an enum, it should be stored as an int32
1420 # value using the google.protobuf.Int32Value type.
1421 "a_key": "", # Properties of the object. Contains field @type with type URL.
1422 },
1423 },
1424 ],
1425 },
1426 ],
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001427 },
1428 ],
1429 "types": [ # A list of all proto message types included in this API service.
1430 # Types referenced directly or indirectly by the `apis` are
1431 # automatically included. Messages which are not referenced but
1432 # shall be included, such as types used by the `google.protobuf.Any` type,
1433 # should be listed here by name. Example:
1434 #
1435 # types:
1436 # - name: google.protobuf.Int32
1437 { # A protocol buffer message type.
1438 "oneofs": [ # The list of types appearing in `oneof` definitions in this type.
1439 "A String",
1440 ],
1441 "name": "A String", # The fully qualified message name.
1442 "sourceContext": { # `SourceContext` represents information about the source of a # The source context.
1443 # protobuf element, like the file in which it is defined.
1444 "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
1445 # protobuf element. For example: `"google/protobuf/source_context.proto"`.
1446 },
1447 "syntax": "A String", # The source syntax.
1448 "fields": [ # The list of fields.
1449 { # A single field of a message type.
1450 "kind": "A String", # The field type.
1451 "oneofIndex": 42, # The index of the field type in `Type.oneofs`, for message or enumeration
1452 # types. The first type has index 1; zero means the type is not in the list.
1453 "typeUrl": "A String", # The field type URL, without the scheme, for message or enumeration
1454 # types. Example: `"type.googleapis.com/google.protobuf.Timestamp"`.
1455 "name": "A String", # The field name.
1456 "defaultValue": "A String", # The string value of the default value of this field. Proto2 syntax only.
1457 "jsonName": "A String", # The field JSON name.
1458 "number": 42, # The field number.
1459 "cardinality": "A String", # The field cardinality.
1460 "options": [ # The protocol buffer options.
1461 { # A protocol buffer option, which can be attached to a message, field,
1462 # enumeration, etc.
1463 "name": "A String", # The option's name. For protobuf built-in options (options defined in
1464 # descriptor.proto), this is the short name. For example, `"map_entry"`.
1465 # For custom options, it should be the fully-qualified name. For example,
1466 # `"google.api.http"`.
1467 "value": { # The option's value packed in an Any message. If the value is a primitive,
1468 # the corresponding wrapper type defined in google/protobuf/wrappers.proto
1469 # should be used. If the value is an enum, it should be stored as an int32
1470 # value using the google.protobuf.Int32Value type.
1471 "a_key": "", # Properties of the object. Contains field @type with type URL.
1472 },
1473 },
1474 ],
1475 "packed": True or False, # Whether to use alternative packed wire representation.
1476 },
1477 ],
1478 "options": [ # The protocol buffer options.
1479 { # A protocol buffer option, which can be attached to a message, field,
1480 # enumeration, etc.
1481 "name": "A String", # The option's name. For protobuf built-in options (options defined in
1482 # descriptor.proto), this is the short name. For example, `"map_entry"`.
1483 # For custom options, it should be the fully-qualified name. For example,
1484 # `"google.api.http"`.
1485 "value": { # The option's value packed in an Any message. If the value is a primitive,
1486 # the corresponding wrapper type defined in google/protobuf/wrappers.proto
1487 # should be used. If the value is an enum, it should be stored as an int32
1488 # value using the google.protobuf.Int32Value type.
1489 "a_key": "", # Properties of the object. Contains field @type with type URL.
1490 },
1491 },
1492 ],
1493 },
1494 ],
1495 "logging": { # Logging configuration of the service. # Logging configuration.
1496 #
1497 # The following example shows how to configure logs to be sent to the
1498 # producer and consumer projects. In the example, the `activity_history`
1499 # log is sent to both the producer and consumer projects, whereas the
1500 # `purchase_history` log is only sent to the producer project.
1501 #
1502 # monitored_resources:
1503 # - type: library.googleapis.com/branch
1504 # labels:
1505 # - key: /city
1506 # description: The city where the library branch is located in.
1507 # - key: /name
1508 # description: The name of the branch.
1509 # logs:
1510 # - name: activity_history
1511 # labels:
1512 # - key: /customer_id
1513 # - name: purchase_history
1514 # logging:
1515 # producer_destinations:
1516 # - monitored_resource: library.googleapis.com/branch
1517 # logs:
1518 # - activity_history
1519 # - purchase_history
1520 # consumer_destinations:
1521 # - monitored_resource: library.googleapis.com/branch
1522 # logs:
1523 # - activity_history
1524 "producerDestinations": [ # Logging configurations for sending logs to the producer project.
1525 # There can be multiple producer destinations, each one must have a
1526 # different monitored resource type. A log can be used in at most
1527 # one producer destination.
1528 { # Configuration of a specific logging destination (the producer project
1529 # or the consumer project).
1530 "monitoredResource": "A String", # The monitored resource type. The type must be defined in the
1531 # Service.monitored_resources section.
1532 "logs": [ # Names of the logs to be sent to this destination. Each name must
1533 # be defined in the Service.logs section. If the log name is
1534 # not a domain scoped name, it will be automatically prefixed with
1535 # the service name followed by "/".
1536 "A String",
1537 ],
1538 },
1539 ],
1540 "consumerDestinations": [ # Logging configurations for sending logs to the consumer project.
1541 # There can be multiple consumer destinations, each one must have a
1542 # different monitored resource type. A log can be used in at most
1543 # one consumer destination.
1544 { # Configuration of a specific logging destination (the producer project
1545 # or the consumer project).
1546 "monitoredResource": "A String", # The monitored resource type. The type must be defined in the
1547 # Service.monitored_resources section.
1548 "logs": [ # Names of the logs to be sent to this destination. Each name must
1549 # be defined in the Service.logs section. If the log name is
1550 # not a domain scoped name, it will be automatically prefixed with
1551 # the service name followed by "/".
1552 "A String",
1553 ],
1554 },
1555 ],
1556 },
1557 "name": "A String", # The DNS address at which this service is available,
1558 # e.g. `calendar.googleapis.com`.
1559 "documentation": { # `Documentation` provides the information for describing a service. # Additional API documentation.
1560 #
1561 # Example:
1562 # <pre><code>documentation:
1563 # summary: >
1564 # The Google Calendar API gives access
1565 # to most calendar features.
1566 # pages:
1567 # - name: Overview
1568 # content: &#40;== include google/foo/overview.md ==&#41;
1569 # - name: Tutorial
1570 # content: &#40;== include google/foo/tutorial.md ==&#41;
1571 # subpages;
1572 # - name: Java
1573 # content: &#40;== include google/foo/tutorial_java.md ==&#41;
1574 # rules:
1575 # - selector: google.calendar.Calendar.Get
1576 # description: >
1577 # ...
1578 # - selector: google.calendar.Calendar.Put
1579 # description: >
1580 # ...
1581 # </code></pre>
1582 # Documentation is provided in markdown syntax. In addition to
1583 # standard markdown features, definition lists, tables and fenced
1584 # code blocks are supported. Section headers can be provided and are
1585 # interpreted relative to the section nesting of the context where
1586 # a documentation fragment is embedded.
1587 #
1588 # Documentation from the IDL is merged with documentation defined
1589 # via the config at normalization time, where documentation provided
1590 # by config rules overrides IDL provided.
1591 #
1592 # A number of constructs specific to the API platform are supported
1593 # in documentation text.
1594 #
1595 # In order to reference a proto element, the following
1596 # notation can be used:
1597 # <pre><code>&#91;fully.qualified.proto.name]&#91;]</code></pre>
1598 # To override the display text used for the link, this can be used:
1599 # <pre><code>&#91;display text]&#91;fully.qualified.proto.name]</code></pre>
1600 # Text can be excluded from doc using the following notation:
1601 # <pre><code>&#40;-- internal comment --&#41;</code></pre>
1602 # Comments can be made conditional using a visibility label. The below
1603 # text will be only rendered if the `BETA` label is available:
1604 # <pre><code>&#40;--BETA: comment for BETA users --&#41;</code></pre>
1605 # A few directives are available in documentation. Note that
1606 # directives must appear on a single line to be properly
1607 # identified. The `include` directive includes a markdown file from
1608 # an external source:
1609 # <pre><code>&#40;== include path/to/file ==&#41;</code></pre>
1610 # The `resource_for` directive marks a message to be the resource of
1611 # a collection in REST view. If it is not specified, tools attempt
1612 # to infer the resource from the operations in a collection:
1613 # <pre><code>&#40;== resource_for v1.shelves.books ==&#41;</code></pre>
1614 # The directive `suppress_warning` does not directly affect documentation
1615 # and is documented together with service config validation.
1616 "rules": [ # A list of documentation rules that apply to individual API elements.
1617 #
1618 # **NOTE:** All service configuration rules follow "last one wins" order.
1619 { # A documentation rule provides information about individual API elements.
1620 "description": "A String", # Description of the selected API(s).
1621 "deprecationDescription": "A String", # Deprecation description of the selected element(s). It can be provided if an
1622 # element is marked as `deprecated`.
1623 "selector": "A String", # The selector is a comma-separated list of patterns. Each pattern is a
1624 # qualified name of the element which may end in "*", indicating a wildcard.
1625 # Wildcards are only allowed at the end and for a whole component of the
1626 # qualified name, i.e. "foo.*" is ok, but not "foo.b*" or "foo.*.bar". To
1627 # specify a default for all applicable elements, the whole pattern "*"
1628 # is used.
1629 },
1630 ],
1631 "documentationRootUrl": "A String", # The URL to the root of documentation.
1632 "overview": "A String", # Declares a single overview page. For example:
1633 # <pre><code>documentation:
1634 # summary: ...
1635 # overview: &#40;== include overview.md ==&#41;
1636 # </code></pre>
1637 # This is a shortcut for the following declaration (using pages style):
1638 # <pre><code>documentation:
1639 # summary: ...
1640 # pages:
1641 # - name: Overview
1642 # content: &#40;== include overview.md ==&#41;
1643 # </code></pre>
1644 # Note: you cannot specify both `overview` field and `pages` field.
1645 "pages": [ # The top level pages for the documentation set.
1646 { # Represents a documentation page. A page can contain subpages to represent
1647 # nested documentation set structure.
1648 "content": "A String", # The Markdown content of the page. You can use <code>&#40;== include {path} ==&#41;</code>
1649 # to include content from a Markdown file.
1650 "subpages": [ # Subpages of this page. The order of subpages specified here will be
1651 # honored in the generated docset.
1652 # Object with schema name: Page
1653 ],
1654 "name": "A String", # The name of the page. It will be used as an identity of the page to
1655 # generate URI of the page, text of the link to this page in navigation,
1656 # etc. The full page name (start from the root page name to this page
1657 # concatenated with `.`) can be used as reference to the page in your
1658 # documentation. For example:
1659 # <pre><code>pages:
1660 # - name: Tutorial
1661 # content: &#40;== include tutorial.md ==&#41;
1662 # subpages:
1663 # - name: Java
1664 # content: &#40;== include tutorial_java.md ==&#41;
1665 # </code></pre>
1666 # You can reference `Java` page using Markdown reference link syntax:
1667 # `Java`.
1668 },
1669 ],
1670 "summary": "A String", # A short summary of what the service does. Can only be provided by
1671 # plain text.
1672 },
1673 "sourceInfo": { # Source information used to create a Service Config # Output only. The source information for this configuration if available.
1674 "sourceFiles": [ # All files used during config generation.
1675 {
1676 "a_key": "", # Properties of the object. Contains field @type with type URL.
1677 },
1678 ],
1679 },
1680 "systemTypes": [ # A list of all proto message types included in this API service.
1681 # It serves similar purpose as [google.api.Service.types], except that
1682 # these types are not needed by user-defined APIs. Therefore, they will not
1683 # show up in the generated discovery doc. This field should only be used
1684 # to define system APIs in ESF.
1685 { # A protocol buffer message type.
1686 "oneofs": [ # The list of types appearing in `oneof` definitions in this type.
1687 "A String",
1688 ],
1689 "name": "A String", # The fully qualified message name.
1690 "sourceContext": { # `SourceContext` represents information about the source of a # The source context.
1691 # protobuf element, like the file in which it is defined.
1692 "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
1693 # protobuf element. For example: `"google/protobuf/source_context.proto"`.
1694 },
1695 "syntax": "A String", # The source syntax.
1696 "fields": [ # The list of fields.
1697 { # A single field of a message type.
1698 "kind": "A String", # The field type.
1699 "oneofIndex": 42, # The index of the field type in `Type.oneofs`, for message or enumeration
1700 # types. The first type has index 1; zero means the type is not in the list.
1701 "typeUrl": "A String", # The field type URL, without the scheme, for message or enumeration
1702 # types. Example: `"type.googleapis.com/google.protobuf.Timestamp"`.
1703 "name": "A String", # The field name.
1704 "defaultValue": "A String", # The string value of the default value of this field. Proto2 syntax only.
1705 "jsonName": "A String", # The field JSON name.
1706 "number": 42, # The field number.
1707 "cardinality": "A String", # The field cardinality.
1708 "options": [ # The protocol buffer options.
1709 { # A protocol buffer option, which can be attached to a message, field,
1710 # enumeration, etc.
1711 "name": "A String", # The option's name. For protobuf built-in options (options defined in
1712 # descriptor.proto), this is the short name. For example, `"map_entry"`.
1713 # For custom options, it should be the fully-qualified name. For example,
1714 # `"google.api.http"`.
1715 "value": { # The option's value packed in an Any message. If the value is a primitive,
1716 # the corresponding wrapper type defined in google/protobuf/wrappers.proto
1717 # should be used. If the value is an enum, it should be stored as an int32
1718 # value using the google.protobuf.Int32Value type.
1719 "a_key": "", # Properties of the object. Contains field @type with type URL.
1720 },
1721 },
1722 ],
1723 "packed": True or False, # Whether to use alternative packed wire representation.
1724 },
1725 ],
1726 "options": [ # The protocol buffer options.
1727 { # A protocol buffer option, which can be attached to a message, field,
1728 # enumeration, etc.
1729 "name": "A String", # The option's name. For protobuf built-in options (options defined in
1730 # descriptor.proto), this is the short name. For example, `"map_entry"`.
1731 # For custom options, it should be the fully-qualified name. For example,
1732 # `"google.api.http"`.
1733 "value": { # The option's value packed in an Any message. If the value is a primitive,
1734 # the corresponding wrapper type defined in google/protobuf/wrappers.proto
1735 # should be used. If the value is an enum, it should be stored as an int32
1736 # value using the google.protobuf.Int32Value type.
1737 "a_key": "", # Properties of the object. Contains field @type with type URL.
1738 },
1739 },
1740 ],
1741 },
1742 ],
1743 "context": { # `Context` defines which contexts an API requests. # Context configuration.
1744 #
1745 # Example:
1746 #
1747 # context:
1748 # rules:
1749 # - selector: "*"
1750 # requested:
1751 # - google.rpc.context.ProjectContext
1752 # - google.rpc.context.OriginContext
1753 #
1754 # The above specifies that all methods in the API request
1755 # `google.rpc.context.ProjectContext` and
1756 # `google.rpc.context.OriginContext`.
1757 #
1758 # Available context types are defined in package
1759 # `google.rpc.context`.
1760 "rules": [ # A list of RPC context rules that apply to individual API methods.
1761 #
1762 # **NOTE:** All service configuration rules follow "last one wins" order.
1763 { # A context rule provides information about the context for an individual API
1764 # element.
Sai Cheemalapatie833b792017-03-24 15:06:46 -07001765 "provided": [ # A list of full type names of provided contexts.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001766 "A String",
1767 ],
Sai Cheemalapatie833b792017-03-24 15:06:46 -07001768 "requested": [ # A list of full type names of requested contexts.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001769 "A String",
1770 ],
1771 "selector": "A String", # Selects the methods to which this rule applies.
1772 #
1773 # Refer to selector for syntax details.
1774 },
1775 ],
1776 },
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001777 "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>