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