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