blob: bbcd9f1c3abf6676e19d6360e33d673a42a05543 [file] [log] [blame]
// Copyright 2016 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.golang.org/genproto/googleapis/api/serviceconfig/annotations.proto"; // from google/api/annotations.proto
import "google.golang.org/genproto/googleapis/api/serviceconfig/auth.proto"; // from google/api/auth.proto
import "google.golang.org/genproto/googleapis/api/serviceconfig/backend.proto"; // from google/api/backend.proto
import "google.golang.org/genproto/googleapis/api/serviceconfig/context.proto"; // from google/api/context.proto
import "google.golang.org/genproto/googleapis/api/serviceconfig/control.proto"; // from google/api/control.proto
import "google.golang.org/genproto/googleapis/api/serviceconfig/documentation.proto"; // from google/api/documentation.proto
import "google.golang.org/genproto/googleapis/api/serviceconfig/endpoint.proto"; // from google/api/endpoint.proto
import "google.golang.org/genproto/googleapis/api/serviceconfig/http.proto"; // from google/api/http.proto
import "google.golang.org/genproto/googleapis/api/label/label.proto"; // from google/api/label.proto
import "google.golang.org/genproto/googleapis/api/serviceconfig/log.proto"; // from google/api/log.proto
import "google.golang.org/genproto/googleapis/api/serviceconfig/logging.proto"; // from google/api/logging.proto
import "google.golang.org/genproto/googleapis/api/metric/metric.proto"; // from google/api/metric.proto
import "google.golang.org/genproto/googleapis/api/monitoredres/monitored_resource.proto"; // from google/api/monitored_resource.proto
import "google.golang.org/genproto/googleapis/api/serviceconfig/monitoring.proto"; // from google/api/monitoring.proto
import "google.golang.org/genproto/googleapis/api/serviceconfig/system_parameter.proto"; // from google/api/system_parameter.proto
import "google.golang.org/genproto/googleapis/api/serviceconfig/usage.proto"; // from google/api/usage.proto
import "github.com/golang/protobuf/ptypes/any/any.proto"; // from google/protobuf/any.proto
import "google.golang.org/genproto/protobuf/api.proto"; // from google/protobuf/api.proto
import "google.golang.org/genproto/protobuf/type.proto"; // from google/protobuf/type.proto
import "github.com/golang/protobuf/ptypes/wrappers/wrappers.proto"; // from google/protobuf/wrappers.proto
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 the configuration schema. It
// describes basic information like the name of the service and the
// exposed API interfaces, and delegates other aspects to configuration
// sub-sections.
//
// Example:
//
// type: google.api.Service
// config_version: 1
// name: calendar.googleapis.com
// title: Google Calendar API
// apis:
// - name: google.calendar.Calendar
// backend:
// rules:
// - selector: "*"
// address: calendar.example.com
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;
// 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 of the service.
Logging logging = 27;
// Monitoring configuration of the service.
Monitoring monitoring = 28;
// Configuration for system parameters.
SystemParameters system_parameters = 29;
}