xref: /aosp_15_r20/external/googleapis/google/api/service.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
1*d5c09012SAndroid Build Coastguard Worker// Copyright 2023 Google LLC
2*d5c09012SAndroid Build Coastguard Worker//
3*d5c09012SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*d5c09012SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*d5c09012SAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*d5c09012SAndroid Build Coastguard Worker//
7*d5c09012SAndroid Build Coastguard Worker//     http://www.apache.org/licenses/LICENSE-2.0
8*d5c09012SAndroid Build Coastguard Worker//
9*d5c09012SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*d5c09012SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*d5c09012SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*d5c09012SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*d5c09012SAndroid Build Coastguard Worker// limitations under the License.
14*d5c09012SAndroid Build Coastguard Worker
15*d5c09012SAndroid Build Coastguard Workersyntax = "proto3";
16*d5c09012SAndroid Build Coastguard Worker
17*d5c09012SAndroid Build Coastguard Workerpackage google.api;
18*d5c09012SAndroid Build Coastguard Worker
19*d5c09012SAndroid Build Coastguard Workerimport "google/api/auth.proto";
20*d5c09012SAndroid Build Coastguard Workerimport "google/api/backend.proto";
21*d5c09012SAndroid Build Coastguard Workerimport "google/api/billing.proto";
22*d5c09012SAndroid Build Coastguard Workerimport "google/api/client.proto";
23*d5c09012SAndroid Build Coastguard Workerimport "google/api/context.proto";
24*d5c09012SAndroid Build Coastguard Workerimport "google/api/control.proto";
25*d5c09012SAndroid Build Coastguard Workerimport "google/api/documentation.proto";
26*d5c09012SAndroid Build Coastguard Workerimport "google/api/endpoint.proto";
27*d5c09012SAndroid Build Coastguard Workerimport "google/api/http.proto";
28*d5c09012SAndroid Build Coastguard Workerimport "google/api/log.proto";
29*d5c09012SAndroid Build Coastguard Workerimport "google/api/logging.proto";
30*d5c09012SAndroid Build Coastguard Workerimport "google/api/metric.proto";
31*d5c09012SAndroid Build Coastguard Workerimport "google/api/monitored_resource.proto";
32*d5c09012SAndroid Build Coastguard Workerimport "google/api/monitoring.proto";
33*d5c09012SAndroid Build Coastguard Workerimport "google/api/quota.proto";
34*d5c09012SAndroid Build Coastguard Workerimport "google/api/source_info.proto";
35*d5c09012SAndroid Build Coastguard Workerimport "google/api/system_parameter.proto";
36*d5c09012SAndroid Build Coastguard Workerimport "google/api/usage.proto";
37*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/api.proto";
38*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/type.proto";
39*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/wrappers.proto";
40*d5c09012SAndroid Build Coastguard Worker
41*d5c09012SAndroid Build Coastguard Workeroption go_package = "google.golang.org/genproto/googleapis/api/serviceconfig;serviceconfig";
42*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true;
43*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "ServiceProto";
44*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.api";
45*d5c09012SAndroid Build Coastguard Workeroption objc_class_prefix = "GAPI";
46*d5c09012SAndroid Build Coastguard Worker
47*d5c09012SAndroid Build Coastguard Worker// `Service` is the root object of Google API service configuration (service
48*d5c09012SAndroid Build Coastguard Worker// config). It describes the basic information about a logical service,
49*d5c09012SAndroid Build Coastguard Worker// such as the service name and the user-facing title, and delegates other
50*d5c09012SAndroid Build Coastguard Worker// aspects to sub-sections. Each sub-section is either a proto message or a
51*d5c09012SAndroid Build Coastguard Worker// repeated proto message that configures a specific aspect, such as auth.
52*d5c09012SAndroid Build Coastguard Worker// For more information, see each proto message definition.
53*d5c09012SAndroid Build Coastguard Worker//
54*d5c09012SAndroid Build Coastguard Worker// Example:
55*d5c09012SAndroid Build Coastguard Worker//
56*d5c09012SAndroid Build Coastguard Worker//     type: google.api.Service
57*d5c09012SAndroid Build Coastguard Worker//     name: calendar.googleapis.com
58*d5c09012SAndroid Build Coastguard Worker//     title: Google Calendar API
59*d5c09012SAndroid Build Coastguard Worker//     apis:
60*d5c09012SAndroid Build Coastguard Worker//     - name: google.calendar.v3.Calendar
61*d5c09012SAndroid Build Coastguard Worker//
62*d5c09012SAndroid Build Coastguard Worker//     visibility:
63*d5c09012SAndroid Build Coastguard Worker//       rules:
64*d5c09012SAndroid Build Coastguard Worker//       - selector: "google.calendar.v3.*"
65*d5c09012SAndroid Build Coastguard Worker//         restriction: PREVIEW
66*d5c09012SAndroid Build Coastguard Worker//     backend:
67*d5c09012SAndroid Build Coastguard Worker//       rules:
68*d5c09012SAndroid Build Coastguard Worker//       - selector: "google.calendar.v3.*"
69*d5c09012SAndroid Build Coastguard Worker//         address: calendar.example.com
70*d5c09012SAndroid Build Coastguard Worker//
71*d5c09012SAndroid Build Coastguard Worker//     authentication:
72*d5c09012SAndroid Build Coastguard Worker//       providers:
73*d5c09012SAndroid Build Coastguard Worker//       - id: google_calendar_auth
74*d5c09012SAndroid Build Coastguard Worker//         jwks_uri: https://www.googleapis.com/oauth2/v1/certs
75*d5c09012SAndroid Build Coastguard Worker//         issuer: https://securetoken.google.com
76*d5c09012SAndroid Build Coastguard Worker//       rules:
77*d5c09012SAndroid Build Coastguard Worker//       - selector: "*"
78*d5c09012SAndroid Build Coastguard Worker//         requirements:
79*d5c09012SAndroid Build Coastguard Worker//           provider_id: google_calendar_auth
80*d5c09012SAndroid Build Coastguard Workermessage Service {
81*d5c09012SAndroid Build Coastguard Worker  // The service name, which is a DNS-like logical identifier for the
82*d5c09012SAndroid Build Coastguard Worker  // service, such as `calendar.googleapis.com`. The service name
83*d5c09012SAndroid Build Coastguard Worker  // typically goes through DNS verification to make sure the owner
84*d5c09012SAndroid Build Coastguard Worker  // of the service also owns the DNS name.
85*d5c09012SAndroid Build Coastguard Worker  string name = 1;
86*d5c09012SAndroid Build Coastguard Worker
87*d5c09012SAndroid Build Coastguard Worker  // The product title for this service, it is the name displayed in Google
88*d5c09012SAndroid Build Coastguard Worker  // Cloud Console.
89*d5c09012SAndroid Build Coastguard Worker  string title = 2;
90*d5c09012SAndroid Build Coastguard Worker
91*d5c09012SAndroid Build Coastguard Worker  // The Google project that owns this service.
92*d5c09012SAndroid Build Coastguard Worker  string producer_project_id = 22;
93*d5c09012SAndroid Build Coastguard Worker
94*d5c09012SAndroid Build Coastguard Worker  // A unique ID for a specific instance of this message, typically assigned
95*d5c09012SAndroid Build Coastguard Worker  // by the client for tracking purpose. Must be no longer than 63 characters
96*d5c09012SAndroid Build Coastguard Worker  // and only lower case letters, digits, '.', '_' and '-' are allowed. If
97*d5c09012SAndroid Build Coastguard Worker  // empty, the server may choose to generate one instead.
98*d5c09012SAndroid Build Coastguard Worker  string id = 33;
99*d5c09012SAndroid Build Coastguard Worker
100*d5c09012SAndroid Build Coastguard Worker  // A list of API interfaces exported by this service. Only the `name` field
101*d5c09012SAndroid Build Coastguard Worker  // of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by
102*d5c09012SAndroid Build Coastguard Worker  // the configuration author, as the remaining fields will be derived from the
103*d5c09012SAndroid Build Coastguard Worker  // IDL during the normalization process. It is an error to specify an API
104*d5c09012SAndroid Build Coastguard Worker  // interface here which cannot be resolved against the associated IDL files.
105*d5c09012SAndroid Build Coastguard Worker  repeated google.protobuf.Api apis = 3;
106*d5c09012SAndroid Build Coastguard Worker
107*d5c09012SAndroid Build Coastguard Worker  // A list of all proto message types included in this API service.
108*d5c09012SAndroid Build Coastguard Worker  // Types referenced directly or indirectly by the `apis` are automatically
109*d5c09012SAndroid Build Coastguard Worker  // included.  Messages which are not referenced but shall be included, such as
110*d5c09012SAndroid Build Coastguard Worker  // types used by the `google.protobuf.Any` type, should be listed here by
111*d5c09012SAndroid Build Coastguard Worker  // name by the configuration author. Example:
112*d5c09012SAndroid Build Coastguard Worker  //
113*d5c09012SAndroid Build Coastguard Worker  //     types:
114*d5c09012SAndroid Build Coastguard Worker  //     - name: google.protobuf.Int32
115*d5c09012SAndroid Build Coastguard Worker  repeated google.protobuf.Type types = 4;
116*d5c09012SAndroid Build Coastguard Worker
117*d5c09012SAndroid Build Coastguard Worker  // A list of all enum types included in this API service.  Enums referenced
118*d5c09012SAndroid Build Coastguard Worker  // directly or indirectly by the `apis` are automatically included.  Enums
119*d5c09012SAndroid Build Coastguard Worker  // which are not referenced but shall be included should be listed here by
120*d5c09012SAndroid Build Coastguard Worker  // name by the configuration author. Example:
121*d5c09012SAndroid Build Coastguard Worker  //
122*d5c09012SAndroid Build Coastguard Worker  //     enums:
123*d5c09012SAndroid Build Coastguard Worker  //     - name: google.someapi.v1.SomeEnum
124*d5c09012SAndroid Build Coastguard Worker  repeated google.protobuf.Enum enums = 5;
125*d5c09012SAndroid Build Coastguard Worker
126*d5c09012SAndroid Build Coastguard Worker  // Additional API documentation.
127*d5c09012SAndroid Build Coastguard Worker  Documentation documentation = 6;
128*d5c09012SAndroid Build Coastguard Worker
129*d5c09012SAndroid Build Coastguard Worker  // API backend configuration.
130*d5c09012SAndroid Build Coastguard Worker  Backend backend = 8;
131*d5c09012SAndroid Build Coastguard Worker
132*d5c09012SAndroid Build Coastguard Worker  // HTTP configuration.
133*d5c09012SAndroid Build Coastguard Worker  Http http = 9;
134*d5c09012SAndroid Build Coastguard Worker
135*d5c09012SAndroid Build Coastguard Worker  // Quota configuration.
136*d5c09012SAndroid Build Coastguard Worker  Quota quota = 10;
137*d5c09012SAndroid Build Coastguard Worker
138*d5c09012SAndroid Build Coastguard Worker  // Auth configuration.
139*d5c09012SAndroid Build Coastguard Worker  Authentication authentication = 11;
140*d5c09012SAndroid Build Coastguard Worker
141*d5c09012SAndroid Build Coastguard Worker  // Context configuration.
142*d5c09012SAndroid Build Coastguard Worker  Context context = 12;
143*d5c09012SAndroid Build Coastguard Worker
144*d5c09012SAndroid Build Coastguard Worker  // Configuration controlling usage of this service.
145*d5c09012SAndroid Build Coastguard Worker  Usage usage = 15;
146*d5c09012SAndroid Build Coastguard Worker
147*d5c09012SAndroid Build Coastguard Worker  // Configuration for network endpoints.  If this is empty, then an endpoint
148*d5c09012SAndroid Build Coastguard Worker  // with the same name as the service is automatically generated to service all
149*d5c09012SAndroid Build Coastguard Worker  // defined APIs.
150*d5c09012SAndroid Build Coastguard Worker  repeated Endpoint endpoints = 18;
151*d5c09012SAndroid Build Coastguard Worker
152*d5c09012SAndroid Build Coastguard Worker  // Configuration for the service control plane.
153*d5c09012SAndroid Build Coastguard Worker  Control control = 21;
154*d5c09012SAndroid Build Coastguard Worker
155*d5c09012SAndroid Build Coastguard Worker  // Defines the logs used by this service.
156*d5c09012SAndroid Build Coastguard Worker  repeated LogDescriptor logs = 23;
157*d5c09012SAndroid Build Coastguard Worker
158*d5c09012SAndroid Build Coastguard Worker  // Defines the metrics used by this service.
159*d5c09012SAndroid Build Coastguard Worker  repeated MetricDescriptor metrics = 24;
160*d5c09012SAndroid Build Coastguard Worker
161*d5c09012SAndroid Build Coastguard Worker  // Defines the monitored resources used by this service. This is required
162*d5c09012SAndroid Build Coastguard Worker  // by the [Service.monitoring][google.api.Service.monitoring] and
163*d5c09012SAndroid Build Coastguard Worker  // [Service.logging][google.api.Service.logging] configurations.
164*d5c09012SAndroid Build Coastguard Worker  repeated MonitoredResourceDescriptor monitored_resources = 25;
165*d5c09012SAndroid Build Coastguard Worker
166*d5c09012SAndroid Build Coastguard Worker  // Billing configuration.
167*d5c09012SAndroid Build Coastguard Worker  Billing billing = 26;
168*d5c09012SAndroid Build Coastguard Worker
169*d5c09012SAndroid Build Coastguard Worker  // Logging configuration.
170*d5c09012SAndroid Build Coastguard Worker  Logging logging = 27;
171*d5c09012SAndroid Build Coastguard Worker
172*d5c09012SAndroid Build Coastguard Worker  // Monitoring configuration.
173*d5c09012SAndroid Build Coastguard Worker  Monitoring monitoring = 28;
174*d5c09012SAndroid Build Coastguard Worker
175*d5c09012SAndroid Build Coastguard Worker  // System parameter configuration.
176*d5c09012SAndroid Build Coastguard Worker  SystemParameters system_parameters = 29;
177*d5c09012SAndroid Build Coastguard Worker
178*d5c09012SAndroid Build Coastguard Worker  // Output only. The source information for this configuration if available.
179*d5c09012SAndroid Build Coastguard Worker  SourceInfo source_info = 37;
180*d5c09012SAndroid Build Coastguard Worker
181*d5c09012SAndroid Build Coastguard Worker  // Settings for [Google Cloud Client
182*d5c09012SAndroid Build Coastguard Worker  // libraries](https://cloud.google.com/apis/docs/cloud-client-libraries)
183*d5c09012SAndroid Build Coastguard Worker  // generated from APIs defined as protocol buffers.
184*d5c09012SAndroid Build Coastguard Worker  Publishing publishing = 45;
185*d5c09012SAndroid Build Coastguard Worker
186*d5c09012SAndroid Build Coastguard Worker  // Obsolete. Do not use.
187*d5c09012SAndroid Build Coastguard Worker  //
188*d5c09012SAndroid Build Coastguard Worker  // This field has no semantic meaning. The service config compiler always
189*d5c09012SAndroid Build Coastguard Worker  // sets this field to `3`.
190*d5c09012SAndroid Build Coastguard Worker  google.protobuf.UInt32Value config_version = 20;
191*d5c09012SAndroid Build Coastguard Worker}
192