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