|  | // Copyright 2017 Google Inc. | 
|  | // | 
|  | // Licensed under the Apache License, Version 2.0 (the "License"); | 
|  | // you may not use this file except in compliance with the License. | 
|  | // You may obtain a copy of the License at | 
|  | // | 
|  | //     http://www.apache.org/licenses/LICENSE-2.0 | 
|  | // | 
|  | // Unless required by applicable law or agreed to in writing, software | 
|  | // distributed under the License is distributed on an "AS IS" BASIS, | 
|  | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
|  | // See the License for the specific language governing permissions and | 
|  | // limitations under the License. | 
|  |  | 
|  | syntax = "proto3"; | 
|  |  | 
|  | package google.api; | 
|  |  | 
|  | import "google/api/annotations.proto"; | 
|  | import "google/api/auth.proto"; | 
|  | import "google/api/backend.proto"; | 
|  | import "google/api/context.proto"; | 
|  | import "google/api/control.proto"; | 
|  | import "google/api/documentation.proto"; | 
|  | import "google/api/endpoint.proto"; | 
|  | import "google/api/experimental/experimental.proto"; | 
|  | import "google/api/http.proto"; | 
|  | import "google/api/label.proto"; | 
|  | import "google/api/log.proto"; | 
|  | import "google/api/logging.proto"; | 
|  | import "google/api/metric.proto"; | 
|  | import "google/api/monitored_resource.proto"; | 
|  | import "google/api/monitoring.proto"; | 
|  | import "google/api/quota.proto"; | 
|  | import "google/api/source_info.proto"; | 
|  | import "google/api/system_parameter.proto"; | 
|  | import "google/api/usage.proto"; | 
|  | import "google/protobuf/any.proto"; | 
|  | import "google/protobuf/api.proto"; | 
|  | import "google/protobuf/type.proto"; | 
|  | import "google/protobuf/wrappers.proto"; | 
|  |  | 
|  | option go_package = "google.golang.org/genproto/googleapis/api/serviceconfig;serviceconfig"; | 
|  | option java_multiple_files = true; | 
|  | option java_outer_classname = "ServiceProto"; | 
|  | option java_package = "com.google.api"; | 
|  | option objc_class_prefix = "GAPI"; | 
|  |  | 
|  |  | 
|  | // `Service` is the root object of Google service configuration schema. It | 
|  | // describes basic information about a service, such as the name and the | 
|  | // title, and delegates other aspects to sub-sections. Each sub-section is | 
|  | // either a proto message or a repeated proto message that configures a | 
|  | // specific aspect, such as auth. See each proto message definition for details. | 
|  | // | 
|  | // Example: | 
|  | // | 
|  | //     type: google.api.Service | 
|  | //     config_version: 3 | 
|  | //     name: calendar.googleapis.com | 
|  | //     title: Google Calendar API | 
|  | //     apis: | 
|  | //     - name: google.calendar.v3.Calendar | 
|  | //     authentication: | 
|  | //       providers: | 
|  | //       - id: google_calendar_auth | 
|  | //         jwks_uri: https://www.googleapis.com/oauth2/v1/certs | 
|  | //         issuer: https://securetoken.google.com | 
|  | //       rules: | 
|  | //       - selector: "*" | 
|  | //         requirements: | 
|  | //           provider_id: google_calendar_auth | 
|  | message Service { | 
|  | // The version of the service configuration. The config version may | 
|  | // influence interpretation of the configuration, for example, to | 
|  | // determine defaults. This is documented together with applicable | 
|  | // options. The current default for the config version itself is `3`. | 
|  | google.protobuf.UInt32Value config_version = 20; | 
|  |  | 
|  | // The DNS address at which this service is available, | 
|  | // e.g. `calendar.googleapis.com`. | 
|  | string name = 1; | 
|  |  | 
|  | // A unique ID for a specific instance of this message, typically assigned | 
|  | // by the client for tracking purpose. If empty, the server may choose to | 
|  | // generate one instead. | 
|  | string id = 33; | 
|  |  | 
|  | // The product title associated with this service. | 
|  | string title = 2; | 
|  |  | 
|  | // The id of the Google developer project that owns the service. | 
|  | // Members of this project can manage the service configuration, | 
|  | // manage consumption of the service, etc. | 
|  | string producer_project_id = 22; | 
|  |  | 
|  | // A list of API interfaces exported by this service. Only the `name` field | 
|  | // of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by the configuration | 
|  | // author, as the remaining fields will be derived from the IDL during the | 
|  | // normalization process. It is an error to specify an API interface here | 
|  | // which cannot be resolved against the associated IDL files. | 
|  | repeated google.protobuf.Api apis = 3; | 
|  |  | 
|  | // A list of all proto message types included in this API service. | 
|  | // Types referenced directly or indirectly by the `apis` are | 
|  | // automatically included.  Messages which are not referenced but | 
|  | // shall be included, such as types used by the `google.protobuf.Any` type, | 
|  | // should be listed here by name. Example: | 
|  | // | 
|  | //     types: | 
|  | //     - name: google.protobuf.Int32 | 
|  | repeated google.protobuf.Type types = 4; | 
|  |  | 
|  | // A list of all enum types included in this API service.  Enums | 
|  | // referenced directly or indirectly by the `apis` are automatically | 
|  | // included.  Enums which are not referenced but shall be included | 
|  | // should be listed here by name. Example: | 
|  | // | 
|  | //     enums: | 
|  | //     - name: google.someapi.v1.SomeEnum | 
|  | repeated google.protobuf.Enum enums = 5; | 
|  |  | 
|  | // Additional API documentation. | 
|  | Documentation documentation = 6; | 
|  |  | 
|  | // API backend configuration. | 
|  | Backend backend = 8; | 
|  |  | 
|  | // HTTP configuration. | 
|  | Http http = 9; | 
|  |  | 
|  | // Quota configuration. | 
|  | Quota quota = 10; | 
|  |  | 
|  | // Auth configuration. | 
|  | Authentication authentication = 11; | 
|  |  | 
|  | // Context configuration. | 
|  | Context context = 12; | 
|  |  | 
|  | // Configuration controlling usage of this service. | 
|  | Usage usage = 15; | 
|  |  | 
|  | // Configuration for network endpoints.  If this is empty, then an endpoint | 
|  | // with the same name as the service is automatically generated to service all | 
|  | // defined APIs. | 
|  | repeated Endpoint endpoints = 18; | 
|  |  | 
|  | // Configuration for the service control plane. | 
|  | Control control = 21; | 
|  |  | 
|  | // Defines the logs used by this service. | 
|  | repeated LogDescriptor logs = 23; | 
|  |  | 
|  | // Defines the metrics used by this service. | 
|  | repeated MetricDescriptor metrics = 24; | 
|  |  | 
|  | // Defines the monitored resources used by this service. This is required | 
|  | // by the [Service.monitoring][google.api.Service.monitoring] and [Service.logging][google.api.Service.logging] configurations. | 
|  | repeated MonitoredResourceDescriptor monitored_resources = 25; | 
|  |  | 
|  | // Logging configuration. | 
|  | Logging logging = 27; | 
|  |  | 
|  | // Monitoring configuration. | 
|  | Monitoring monitoring = 28; | 
|  |  | 
|  | // System parameter configuration. | 
|  | SystemParameters system_parameters = 29; | 
|  |  | 
|  | // Output only. The source information for this configuration if available. | 
|  | SourceInfo source_info = 37; | 
|  |  | 
|  | // Experimental configuration. | 
|  | Experimental experimental = 101; | 
|  | } |