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