xref: /aosp_15_r20/external/googleapis/google/api/serviceusage/v1beta1/resources.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.serviceusage.v1beta1;
18*d5c09012SAndroid Build Coastguard Worker
19*d5c09012SAndroid Build Coastguard Workerimport "google/api/auth.proto";
20*d5c09012SAndroid Build Coastguard Workerimport "google/api/documentation.proto";
21*d5c09012SAndroid Build Coastguard Workerimport "google/api/endpoint.proto";
22*d5c09012SAndroid Build Coastguard Workerimport "google/api/monitored_resource.proto";
23*d5c09012SAndroid Build Coastguard Workerimport "google/api/monitoring.proto";
24*d5c09012SAndroid Build Coastguard Workerimport "google/api/quota.proto";
25*d5c09012SAndroid Build Coastguard Workerimport "google/api/usage.proto";
26*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/api.proto";
27*d5c09012SAndroid Build Coastguard Worker
28*d5c09012SAndroid Build Coastguard Workeroption csharp_namespace = "Google.Api.ServiceUsage.V1Beta1";
29*d5c09012SAndroid Build Coastguard Workeroption go_package = "google.golang.org/genproto/googleapis/api/serviceusage/v1beta1;serviceusage";
30*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true;
31*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "ResourcesProto";
32*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.api.serviceusage.v1beta1";
33*d5c09012SAndroid Build Coastguard Workeroption php_namespace = "Google\\Api\\ServiceUsage\\V1beta1";
34*d5c09012SAndroid Build Coastguard Workeroption ruby_package = "Google::Api::ServiceUsage::V1beta1";
35*d5c09012SAndroid Build Coastguard Worker
36*d5c09012SAndroid Build Coastguard Worker// A service that is available for use by the consumer.
37*d5c09012SAndroid Build Coastguard Workermessage Service {
38*d5c09012SAndroid Build Coastguard Worker  // The resource name of the consumer and service.
39*d5c09012SAndroid Build Coastguard Worker  //
40*d5c09012SAndroid Build Coastguard Worker  // A valid name would be:
41*d5c09012SAndroid Build Coastguard Worker  // - `projects/123/services/serviceusage.googleapis.com`
42*d5c09012SAndroid Build Coastguard Worker  string name = 1;
43*d5c09012SAndroid Build Coastguard Worker
44*d5c09012SAndroid Build Coastguard Worker  // The resource name of the consumer.
45*d5c09012SAndroid Build Coastguard Worker  //
46*d5c09012SAndroid Build Coastguard Worker  // A valid name would be:
47*d5c09012SAndroid Build Coastguard Worker  // - `projects/123`
48*d5c09012SAndroid Build Coastguard Worker  string parent = 5;
49*d5c09012SAndroid Build Coastguard Worker
50*d5c09012SAndroid Build Coastguard Worker  // The service configuration of the available service.
51*d5c09012SAndroid Build Coastguard Worker  // Some fields may be filtered out of the configuration in responses to
52*d5c09012SAndroid Build Coastguard Worker  // the `ListServices` method. These fields are present only in responses to
53*d5c09012SAndroid Build Coastguard Worker  // the `GetService` method.
54*d5c09012SAndroid Build Coastguard Worker  ServiceConfig config = 2;
55*d5c09012SAndroid Build Coastguard Worker
56*d5c09012SAndroid Build Coastguard Worker  // Whether or not the service has been enabled for use by the consumer.
57*d5c09012SAndroid Build Coastguard Worker  State state = 4;
58*d5c09012SAndroid Build Coastguard Worker}
59*d5c09012SAndroid Build Coastguard Worker
60*d5c09012SAndroid Build Coastguard Worker// Whether or not a service has been enabled for use by a consumer.
61*d5c09012SAndroid Build Coastguard Workerenum State {
62*d5c09012SAndroid Build Coastguard Worker  // The default value, which indicates that the enabled state of the service
63*d5c09012SAndroid Build Coastguard Worker  // is unspecified or not meaningful. Currently, all consumers other than
64*d5c09012SAndroid Build Coastguard Worker  // projects (such as folders and organizations) are always in this state.
65*d5c09012SAndroid Build Coastguard Worker  STATE_UNSPECIFIED = 0;
66*d5c09012SAndroid Build Coastguard Worker
67*d5c09012SAndroid Build Coastguard Worker  // The service cannot be used by this consumer. It has either been explicitly
68*d5c09012SAndroid Build Coastguard Worker  // disabled, or has never been enabled.
69*d5c09012SAndroid Build Coastguard Worker  DISABLED = 1;
70*d5c09012SAndroid Build Coastguard Worker
71*d5c09012SAndroid Build Coastguard Worker  // The service has been explicitly enabled for use by this consumer.
72*d5c09012SAndroid Build Coastguard Worker  ENABLED = 2;
73*d5c09012SAndroid Build Coastguard Worker}
74*d5c09012SAndroid Build Coastguard Worker
75*d5c09012SAndroid Build Coastguard Worker// The configuration of the service.
76*d5c09012SAndroid Build Coastguard Workermessage ServiceConfig {
77*d5c09012SAndroid Build Coastguard Worker  // The DNS address at which this service is available.
78*d5c09012SAndroid Build Coastguard Worker  //
79*d5c09012SAndroid Build Coastguard Worker  // An example DNS address would be:
80*d5c09012SAndroid Build Coastguard Worker  // `calendar.googleapis.com`.
81*d5c09012SAndroid Build Coastguard Worker  string name = 1;
82*d5c09012SAndroid Build Coastguard Worker
83*d5c09012SAndroid Build Coastguard Worker  // The product title for this service.
84*d5c09012SAndroid Build Coastguard Worker  string title = 2;
85*d5c09012SAndroid Build Coastguard Worker
86*d5c09012SAndroid Build Coastguard Worker  // A list of API interfaces exported by this service. Contains only the names,
87*d5c09012SAndroid Build Coastguard Worker  // versions, and method names of the interfaces.
88*d5c09012SAndroid Build Coastguard Worker  repeated google.protobuf.Api apis = 3;
89*d5c09012SAndroid Build Coastguard Worker
90*d5c09012SAndroid Build Coastguard Worker  // Additional API documentation. Contains only the summary and the
91*d5c09012SAndroid Build Coastguard Worker  // documentation URL.
92*d5c09012SAndroid Build Coastguard Worker  google.api.Documentation documentation = 6;
93*d5c09012SAndroid Build Coastguard Worker
94*d5c09012SAndroid Build Coastguard Worker  // Quota configuration.
95*d5c09012SAndroid Build Coastguard Worker  google.api.Quota quota = 10;
96*d5c09012SAndroid Build Coastguard Worker
97*d5c09012SAndroid Build Coastguard Worker  // Auth configuration. Contains only the OAuth rules.
98*d5c09012SAndroid Build Coastguard Worker  google.api.Authentication authentication = 11;
99*d5c09012SAndroid Build Coastguard Worker
100*d5c09012SAndroid Build Coastguard Worker  // Configuration controlling usage of this service.
101*d5c09012SAndroid Build Coastguard Worker  google.api.Usage usage = 15;
102*d5c09012SAndroid Build Coastguard Worker
103*d5c09012SAndroid Build Coastguard Worker  // Configuration for network endpoints. Contains only the names and aliases
104*d5c09012SAndroid Build Coastguard Worker  // of the endpoints.
105*d5c09012SAndroid Build Coastguard Worker  repeated google.api.Endpoint endpoints = 18;
106*d5c09012SAndroid Build Coastguard Worker
107*d5c09012SAndroid Build Coastguard Worker  // Defines the monitored resources used by this service. This is required
108*d5c09012SAndroid Build Coastguard Worker  // by the [Service.monitoring][google.api.Service.monitoring] and
109*d5c09012SAndroid Build Coastguard Worker  // [Service.logging][google.api.Service.logging] configurations.
110*d5c09012SAndroid Build Coastguard Worker  repeated google.api.MonitoredResourceDescriptor monitored_resources = 25;
111*d5c09012SAndroid Build Coastguard Worker
112*d5c09012SAndroid Build Coastguard Worker  // Monitoring configuration.
113*d5c09012SAndroid Build Coastguard Worker  // This should not include the 'producer_destinations' field.
114*d5c09012SAndroid Build Coastguard Worker  google.api.Monitoring monitoring = 28;
115*d5c09012SAndroid Build Coastguard Worker}
116*d5c09012SAndroid Build Coastguard Worker
117*d5c09012SAndroid Build Coastguard Worker// The operation metadata returned for the batchend services operation.
118*d5c09012SAndroid Build Coastguard Workermessage OperationMetadata {
119*d5c09012SAndroid Build Coastguard Worker  // The full name of the resources that this operation is directly
120*d5c09012SAndroid Build Coastguard Worker  // associated with.
121*d5c09012SAndroid Build Coastguard Worker  repeated string resource_names = 2;
122*d5c09012SAndroid Build Coastguard Worker}
123*d5c09012SAndroid Build Coastguard Worker
124*d5c09012SAndroid Build Coastguard Worker// Consumer quota settings for a quota metric.
125*d5c09012SAndroid Build Coastguard Workermessage ConsumerQuotaMetric {
126*d5c09012SAndroid Build Coastguard Worker  // The resource name of the quota settings on this metric for this consumer.
127*d5c09012SAndroid Build Coastguard Worker  //
128*d5c09012SAndroid Build Coastguard Worker  // An example name would be:
129*d5c09012SAndroid Build Coastguard Worker  // `projects/123/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fcpus`
130*d5c09012SAndroid Build Coastguard Worker  //
131*d5c09012SAndroid Build Coastguard Worker  // The resource name is intended to be opaque and should not be parsed for
132*d5c09012SAndroid Build Coastguard Worker  // its component strings, since its representation could change in the future.
133*d5c09012SAndroid Build Coastguard Worker  string name = 1;
134*d5c09012SAndroid Build Coastguard Worker
135*d5c09012SAndroid Build Coastguard Worker  // The name of the metric.
136*d5c09012SAndroid Build Coastguard Worker  //
137*d5c09012SAndroid Build Coastguard Worker  // An example name would be:
138*d5c09012SAndroid Build Coastguard Worker  // `compute.googleapis.com/cpus`
139*d5c09012SAndroid Build Coastguard Worker  string metric = 4;
140*d5c09012SAndroid Build Coastguard Worker
141*d5c09012SAndroid Build Coastguard Worker  // The display name of the metric.
142*d5c09012SAndroid Build Coastguard Worker  //
143*d5c09012SAndroid Build Coastguard Worker  // An example name would be:
144*d5c09012SAndroid Build Coastguard Worker  // `CPUs`
145*d5c09012SAndroid Build Coastguard Worker  string display_name = 2;
146*d5c09012SAndroid Build Coastguard Worker
147*d5c09012SAndroid Build Coastguard Worker  // The consumer quota for each quota limit defined on the metric.
148*d5c09012SAndroid Build Coastguard Worker  repeated ConsumerQuotaLimit consumer_quota_limits = 3;
149*d5c09012SAndroid Build Coastguard Worker
150*d5c09012SAndroid Build Coastguard Worker  // The quota limits targeting the descendant containers of the
151*d5c09012SAndroid Build Coastguard Worker  // consumer in request.
152*d5c09012SAndroid Build Coastguard Worker  //
153*d5c09012SAndroid Build Coastguard Worker  // If the consumer in request is of type `organizations`
154*d5c09012SAndroid Build Coastguard Worker  // or `folders`, the field will list per-project limits in the metric; if the
155*d5c09012SAndroid Build Coastguard Worker  // consumer in request is of type `project`, the field will be empty.
156*d5c09012SAndroid Build Coastguard Worker  //
157*d5c09012SAndroid Build Coastguard Worker  // The `quota_buckets` field of each descendant consumer quota limit will not
158*d5c09012SAndroid Build Coastguard Worker  // be populated.
159*d5c09012SAndroid Build Coastguard Worker  repeated ConsumerQuotaLimit descendant_consumer_quota_limits = 6;
160*d5c09012SAndroid Build Coastguard Worker
161*d5c09012SAndroid Build Coastguard Worker  // The units in which the metric value is reported.
162*d5c09012SAndroid Build Coastguard Worker  string unit = 5;
163*d5c09012SAndroid Build Coastguard Worker}
164*d5c09012SAndroid Build Coastguard Worker
165*d5c09012SAndroid Build Coastguard Worker// Consumer quota settings for a quota limit.
166*d5c09012SAndroid Build Coastguard Workermessage ConsumerQuotaLimit {
167*d5c09012SAndroid Build Coastguard Worker  // The resource name of the quota limit.
168*d5c09012SAndroid Build Coastguard Worker  //
169*d5c09012SAndroid Build Coastguard Worker  // An example name would be:
170*d5c09012SAndroid Build Coastguard Worker  // `projects/123/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion`
171*d5c09012SAndroid Build Coastguard Worker  //
172*d5c09012SAndroid Build Coastguard Worker  // The resource name is intended to be opaque and should not be parsed for
173*d5c09012SAndroid Build Coastguard Worker  // its component strings, since its representation could change in the future.
174*d5c09012SAndroid Build Coastguard Worker  string name = 1;
175*d5c09012SAndroid Build Coastguard Worker
176*d5c09012SAndroid Build Coastguard Worker  // The name of the parent metric of this limit.
177*d5c09012SAndroid Build Coastguard Worker  //
178*d5c09012SAndroid Build Coastguard Worker  // An example name would be:
179*d5c09012SAndroid Build Coastguard Worker  // `compute.googleapis.com/cpus`
180*d5c09012SAndroid Build Coastguard Worker  string metric = 8;
181*d5c09012SAndroid Build Coastguard Worker
182*d5c09012SAndroid Build Coastguard Worker  // The limit unit.
183*d5c09012SAndroid Build Coastguard Worker  //
184*d5c09012SAndroid Build Coastguard Worker  // An example unit would be
185*d5c09012SAndroid Build Coastguard Worker  // `1/{project}/{region}`
186*d5c09012SAndroid Build Coastguard Worker  // Note that `{project}` and `{region}` are not placeholders in this example;
187*d5c09012SAndroid Build Coastguard Worker  // the literal characters `{` and `}` occur in the string.
188*d5c09012SAndroid Build Coastguard Worker  string unit = 2;
189*d5c09012SAndroid Build Coastguard Worker
190*d5c09012SAndroid Build Coastguard Worker  // Whether this limit is precise or imprecise.
191*d5c09012SAndroid Build Coastguard Worker  bool is_precise = 3;
192*d5c09012SAndroid Build Coastguard Worker
193*d5c09012SAndroid Build Coastguard Worker  // Whether admin overrides are allowed on this limit
194*d5c09012SAndroid Build Coastguard Worker  bool allows_admin_overrides = 7;
195*d5c09012SAndroid Build Coastguard Worker
196*d5c09012SAndroid Build Coastguard Worker  // Summary of the enforced quota buckets, organized by quota dimension,
197*d5c09012SAndroid Build Coastguard Worker  // ordered from least specific to most specific (for example, the global
198*d5c09012SAndroid Build Coastguard Worker  // default bucket, with no quota dimensions, will always appear first).
199*d5c09012SAndroid Build Coastguard Worker  repeated QuotaBucket quota_buckets = 9;
200*d5c09012SAndroid Build Coastguard Worker
201*d5c09012SAndroid Build Coastguard Worker  // List of all supported locations.
202*d5c09012SAndroid Build Coastguard Worker  // This field is present only if the limit has a {region} or {zone} dimension.
203*d5c09012SAndroid Build Coastguard Worker  repeated string supported_locations = 11;
204*d5c09012SAndroid Build Coastguard Worker}
205*d5c09012SAndroid Build Coastguard Worker
206*d5c09012SAndroid Build Coastguard Worker// Selected view of quota. Can be used to request more detailed quota
207*d5c09012SAndroid Build Coastguard Worker// information when retrieving quota metrics and limits.
208*d5c09012SAndroid Build Coastguard Workerenum QuotaView {
209*d5c09012SAndroid Build Coastguard Worker  // No quota view specified. Requests that do not specify a quota view will
210*d5c09012SAndroid Build Coastguard Worker  // typically default to the BASIC view.
211*d5c09012SAndroid Build Coastguard Worker  QUOTA_VIEW_UNSPECIFIED = 0;
212*d5c09012SAndroid Build Coastguard Worker
213*d5c09012SAndroid Build Coastguard Worker  // Only buckets with overrides are shown in the response.
214*d5c09012SAndroid Build Coastguard Worker  BASIC = 1;
215*d5c09012SAndroid Build Coastguard Worker
216*d5c09012SAndroid Build Coastguard Worker  // Include per-location buckets even if they do not have overrides.
217*d5c09012SAndroid Build Coastguard Worker  // When the view is FULL, and a limit has regional or zonal quota, the limit
218*d5c09012SAndroid Build Coastguard Worker  // will include buckets for all regions or zones that could support
219*d5c09012SAndroid Build Coastguard Worker  // overrides, even if none are currently present. In some cases this will
220*d5c09012SAndroid Build Coastguard Worker  // cause the response to become very large; callers that do not need this
221*d5c09012SAndroid Build Coastguard Worker  // extra information should use the BASIC view instead.
222*d5c09012SAndroid Build Coastguard Worker  FULL = 2;
223*d5c09012SAndroid Build Coastguard Worker}
224*d5c09012SAndroid Build Coastguard Worker
225*d5c09012SAndroid Build Coastguard Worker// A quota bucket is a quota provisioning unit for a specific set of dimensions.
226*d5c09012SAndroid Build Coastguard Workermessage QuotaBucket {
227*d5c09012SAndroid Build Coastguard Worker  // The effective limit of this quota bucket. Equal to default_limit if there
228*d5c09012SAndroid Build Coastguard Worker  // are no overrides.
229*d5c09012SAndroid Build Coastguard Worker  int64 effective_limit = 1;
230*d5c09012SAndroid Build Coastguard Worker
231*d5c09012SAndroid Build Coastguard Worker  // The default limit of this quota bucket, as specified by the service
232*d5c09012SAndroid Build Coastguard Worker  // configuration.
233*d5c09012SAndroid Build Coastguard Worker  int64 default_limit = 2;
234*d5c09012SAndroid Build Coastguard Worker
235*d5c09012SAndroid Build Coastguard Worker  // Producer override on this quota bucket.
236*d5c09012SAndroid Build Coastguard Worker  QuotaOverride producer_override = 3;
237*d5c09012SAndroid Build Coastguard Worker
238*d5c09012SAndroid Build Coastguard Worker  // Consumer override on this quota bucket.
239*d5c09012SAndroid Build Coastguard Worker  QuotaOverride consumer_override = 4;
240*d5c09012SAndroid Build Coastguard Worker
241*d5c09012SAndroid Build Coastguard Worker  // Admin override on this quota bucket.
242*d5c09012SAndroid Build Coastguard Worker  QuotaOverride admin_override = 5;
243*d5c09012SAndroid Build Coastguard Worker
244*d5c09012SAndroid Build Coastguard Worker  // Producer policy inherited from the closet ancestor of the current consumer.
245*d5c09012SAndroid Build Coastguard Worker  ProducerQuotaPolicy producer_quota_policy = 7;
246*d5c09012SAndroid Build Coastguard Worker
247*d5c09012SAndroid Build Coastguard Worker  // The dimensions of this quota bucket.
248*d5c09012SAndroid Build Coastguard Worker  //
249*d5c09012SAndroid Build Coastguard Worker  // If this map is empty, this is the global bucket, which is the default quota
250*d5c09012SAndroid Build Coastguard Worker  // value applied to all requests that do not have a more specific override.
251*d5c09012SAndroid Build Coastguard Worker  //
252*d5c09012SAndroid Build Coastguard Worker  // If this map is nonempty, the default limit, effective limit, and quota
253*d5c09012SAndroid Build Coastguard Worker  // overrides apply only to requests that have the dimensions given in the map.
254*d5c09012SAndroid Build Coastguard Worker  //
255*d5c09012SAndroid Build Coastguard Worker  // For example, if the map has key `region` and value `us-east-1`, then the
256*d5c09012SAndroid Build Coastguard Worker  // specified effective limit is only effective in that region, and the
257*d5c09012SAndroid Build Coastguard Worker  // specified overrides apply only in that region.
258*d5c09012SAndroid Build Coastguard Worker  map<string, string> dimensions = 6;
259*d5c09012SAndroid Build Coastguard Worker}
260*d5c09012SAndroid Build Coastguard Worker
261*d5c09012SAndroid Build Coastguard Worker// A quota override
262*d5c09012SAndroid Build Coastguard Workermessage QuotaOverride {
263*d5c09012SAndroid Build Coastguard Worker  // The resource name of the override.
264*d5c09012SAndroid Build Coastguard Worker  // This name is generated by the server when the override is created.
265*d5c09012SAndroid Build Coastguard Worker  //
266*d5c09012SAndroid Build Coastguard Worker  // Example names would be:
267*d5c09012SAndroid Build Coastguard Worker  // `projects/123/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion/adminOverrides/4a3f2c1d`
268*d5c09012SAndroid Build Coastguard Worker  // `projects/123/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion/consumerOverrides/4a3f2c1d`
269*d5c09012SAndroid Build Coastguard Worker  //
270*d5c09012SAndroid Build Coastguard Worker  // The resource name is intended to be opaque and should not be parsed for
271*d5c09012SAndroid Build Coastguard Worker  // its component strings, since its representation could change in the future.
272*d5c09012SAndroid Build Coastguard Worker  string name = 1;
273*d5c09012SAndroid Build Coastguard Worker
274*d5c09012SAndroid Build Coastguard Worker  // The overriding quota limit value.
275*d5c09012SAndroid Build Coastguard Worker  // Can be any nonnegative integer, or -1 (unlimited quota).
276*d5c09012SAndroid Build Coastguard Worker  int64 override_value = 2;
277*d5c09012SAndroid Build Coastguard Worker
278*d5c09012SAndroid Build Coastguard Worker  // If this map is nonempty, then this override applies only to specific values
279*d5c09012SAndroid Build Coastguard Worker  // for dimensions defined in the limit unit.
280*d5c09012SAndroid Build Coastguard Worker  //
281*d5c09012SAndroid Build Coastguard Worker  // For example, an override on a limit with the unit `1/{project}/{region}`
282*d5c09012SAndroid Build Coastguard Worker  // could contain an entry with the key `region` and the value `us-east-1`;
283*d5c09012SAndroid Build Coastguard Worker  // the override is only applied to quota consumed in that region.
284*d5c09012SAndroid Build Coastguard Worker  //
285*d5c09012SAndroid Build Coastguard Worker  // This map has the following restrictions:
286*d5c09012SAndroid Build Coastguard Worker  //
287*d5c09012SAndroid Build Coastguard Worker  // *   Keys that are not defined in the limit's unit are not valid keys.
288*d5c09012SAndroid Build Coastguard Worker  //     Any string appearing in `{brackets}` in the unit (besides `{project}`
289*d5c09012SAndroid Build Coastguard Worker  //     or
290*d5c09012SAndroid Build Coastguard Worker  //     `{user}`) is a defined key.
291*d5c09012SAndroid Build Coastguard Worker  // *   `project` is not a valid key; the project is already specified in
292*d5c09012SAndroid Build Coastguard Worker  //     the parent resource name.
293*d5c09012SAndroid Build Coastguard Worker  // *   `user` is not a valid key; the API does not support quota overrides
294*d5c09012SAndroid Build Coastguard Worker  //     that apply only to a specific user.
295*d5c09012SAndroid Build Coastguard Worker  // *   If `region` appears as a key, its value must be a valid Cloud region.
296*d5c09012SAndroid Build Coastguard Worker  // *   If `zone` appears as a key, its value must be a valid Cloud zone.
297*d5c09012SAndroid Build Coastguard Worker  // *   If any valid key other than `region` or `zone` appears in the map, then
298*d5c09012SAndroid Build Coastguard Worker  //     all valid keys other than `region` or `zone` must also appear in the
299*d5c09012SAndroid Build Coastguard Worker  //     map.
300*d5c09012SAndroid Build Coastguard Worker  map<string, string> dimensions = 3;
301*d5c09012SAndroid Build Coastguard Worker
302*d5c09012SAndroid Build Coastguard Worker  // The name of the metric to which this override applies.
303*d5c09012SAndroid Build Coastguard Worker  //
304*d5c09012SAndroid Build Coastguard Worker  // An example name would be:
305*d5c09012SAndroid Build Coastguard Worker  // `compute.googleapis.com/cpus`
306*d5c09012SAndroid Build Coastguard Worker  string metric = 4;
307*d5c09012SAndroid Build Coastguard Worker
308*d5c09012SAndroid Build Coastguard Worker  // The limit unit of the limit to which this override applies.
309*d5c09012SAndroid Build Coastguard Worker  //
310*d5c09012SAndroid Build Coastguard Worker  // An example unit would be:
311*d5c09012SAndroid Build Coastguard Worker  // `1/{project}/{region}`
312*d5c09012SAndroid Build Coastguard Worker  // Note that `{project}` and `{region}` are not placeholders in this example;
313*d5c09012SAndroid Build Coastguard Worker  // the literal characters `{` and `}` occur in the string.
314*d5c09012SAndroid Build Coastguard Worker  string unit = 5;
315*d5c09012SAndroid Build Coastguard Worker
316*d5c09012SAndroid Build Coastguard Worker  // The resource name of the ancestor that requested the override. For example:
317*d5c09012SAndroid Build Coastguard Worker  // `organizations/12345` or `folders/67890`.
318*d5c09012SAndroid Build Coastguard Worker  // Used by admin overrides only.
319*d5c09012SAndroid Build Coastguard Worker  string admin_override_ancestor = 6;
320*d5c09012SAndroid Build Coastguard Worker}
321*d5c09012SAndroid Build Coastguard Worker
322*d5c09012SAndroid Build Coastguard Worker// Import data embedded in the request message
323*d5c09012SAndroid Build Coastguard Workermessage OverrideInlineSource {
324*d5c09012SAndroid Build Coastguard Worker  // The overrides to create.
325*d5c09012SAndroid Build Coastguard Worker  // Each override must have a value for 'metric' and 'unit', to specify
326*d5c09012SAndroid Build Coastguard Worker  // which metric and which limit the override should be applied to.
327*d5c09012SAndroid Build Coastguard Worker  // The 'name' field of the override does not need to be set; it is ignored.
328*d5c09012SAndroid Build Coastguard Worker  repeated QuotaOverride overrides = 1;
329*d5c09012SAndroid Build Coastguard Worker}
330*d5c09012SAndroid Build Coastguard Worker
331*d5c09012SAndroid Build Coastguard Worker// Enumerations of quota safety checks.
332*d5c09012SAndroid Build Coastguard Workerenum QuotaSafetyCheck {
333*d5c09012SAndroid Build Coastguard Worker  // Unspecified quota safety check.
334*d5c09012SAndroid Build Coastguard Worker  QUOTA_SAFETY_CHECK_UNSPECIFIED = 0;
335*d5c09012SAndroid Build Coastguard Worker
336*d5c09012SAndroid Build Coastguard Worker  // Validates that a quota mutation would not cause the consumer's effective
337*d5c09012SAndroid Build Coastguard Worker  // limit to be lower than the consumer's quota usage.
338*d5c09012SAndroid Build Coastguard Worker  LIMIT_DECREASE_BELOW_USAGE = 1;
339*d5c09012SAndroid Build Coastguard Worker
340*d5c09012SAndroid Build Coastguard Worker  // Validates that a quota mutation would not cause the consumer's effective
341*d5c09012SAndroid Build Coastguard Worker  // limit to decrease by more than 10 percent.
342*d5c09012SAndroid Build Coastguard Worker  LIMIT_DECREASE_PERCENTAGE_TOO_HIGH = 2;
343*d5c09012SAndroid Build Coastguard Worker}
344*d5c09012SAndroid Build Coastguard Worker
345*d5c09012SAndroid Build Coastguard Worker// Quota policy created by service producer.
346*d5c09012SAndroid Build Coastguard Workermessage ProducerQuotaPolicy {
347*d5c09012SAndroid Build Coastguard Worker  // The resource name of the policy.
348*d5c09012SAndroid Build Coastguard Worker  // This name is generated by the server when the policy is created.
349*d5c09012SAndroid Build Coastguard Worker  //
350*d5c09012SAndroid Build Coastguard Worker  // Example names would be:
351*d5c09012SAndroid Build Coastguard Worker  // `organizations/123/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion/producerQuotaPolicies/4a3f2c1d`
352*d5c09012SAndroid Build Coastguard Worker  string name = 1;
353*d5c09012SAndroid Build Coastguard Worker
354*d5c09012SAndroid Build Coastguard Worker  // The quota policy value.
355*d5c09012SAndroid Build Coastguard Worker  // Can be any nonnegative integer, or -1 (unlimited quota).
356*d5c09012SAndroid Build Coastguard Worker  int64 policy_value = 2;
357*d5c09012SAndroid Build Coastguard Worker
358*d5c09012SAndroid Build Coastguard Worker  //
359*d5c09012SAndroid Build Coastguard Worker  // If this map is nonempty, then this policy applies only to specific values
360*d5c09012SAndroid Build Coastguard Worker  // for dimensions defined in the limit unit.
361*d5c09012SAndroid Build Coastguard Worker  //
362*d5c09012SAndroid Build Coastguard Worker  // For example, a policy on a limit with the unit `1/{project}/{region}`
363*d5c09012SAndroid Build Coastguard Worker  // could contain an entry with the key `region` and the value `us-east-1`;
364*d5c09012SAndroid Build Coastguard Worker  // the policy is only applied to quota consumed in that region.
365*d5c09012SAndroid Build Coastguard Worker  //
366*d5c09012SAndroid Build Coastguard Worker  // This map has the following restrictions:
367*d5c09012SAndroid Build Coastguard Worker  //
368*d5c09012SAndroid Build Coastguard Worker  // *   Keys that are not defined in the limit's unit are not valid keys.
369*d5c09012SAndroid Build Coastguard Worker  //     Any string appearing in {brackets} in the unit (besides {project} or
370*d5c09012SAndroid Build Coastguard Worker  //     {user}) is a defined key.
371*d5c09012SAndroid Build Coastguard Worker  // *   `project` is not a valid key; the project is already specified in
372*d5c09012SAndroid Build Coastguard Worker  //     the parent resource name.
373*d5c09012SAndroid Build Coastguard Worker  // *   `user` is not a valid key; the API does not support quota policies
374*d5c09012SAndroid Build Coastguard Worker  //     that apply only to a specific user.
375*d5c09012SAndroid Build Coastguard Worker  // *   If `region` appears as a key, its value must be a valid Cloud region.
376*d5c09012SAndroid Build Coastguard Worker  // *   If `zone` appears as a key, its value must be a valid Cloud zone.
377*d5c09012SAndroid Build Coastguard Worker  // *   If any valid key other than `region` or `zone` appears in the map, then
378*d5c09012SAndroid Build Coastguard Worker  //     all valid keys other than `region` or `zone` must also appear in the
379*d5c09012SAndroid Build Coastguard Worker  //     map.
380*d5c09012SAndroid Build Coastguard Worker  map<string, string> dimensions = 3;
381*d5c09012SAndroid Build Coastguard Worker
382*d5c09012SAndroid Build Coastguard Worker  // The name of the metric to which this policy applies.
383*d5c09012SAndroid Build Coastguard Worker  //
384*d5c09012SAndroid Build Coastguard Worker  // An example name would be:
385*d5c09012SAndroid Build Coastguard Worker  // `compute.googleapis.com/cpus`
386*d5c09012SAndroid Build Coastguard Worker  string metric = 4;
387*d5c09012SAndroid Build Coastguard Worker
388*d5c09012SAndroid Build Coastguard Worker  // The limit unit of the limit to which this policy applies.
389*d5c09012SAndroid Build Coastguard Worker  //
390*d5c09012SAndroid Build Coastguard Worker  // An example unit would be:
391*d5c09012SAndroid Build Coastguard Worker  // `1/{project}/{region}`
392*d5c09012SAndroid Build Coastguard Worker  // Note that `{project}` and `{region}` are not placeholders in this example;
393*d5c09012SAndroid Build Coastguard Worker  // the literal characters `{` and `}` occur in the string.
394*d5c09012SAndroid Build Coastguard Worker  string unit = 5;
395*d5c09012SAndroid Build Coastguard Worker
396*d5c09012SAndroid Build Coastguard Worker  // The cloud resource container at which the quota policy is created. The
397*d5c09012SAndroid Build Coastguard Worker  // format is `{container_type}/{container_number}`
398*d5c09012SAndroid Build Coastguard Worker  string container = 6;
399*d5c09012SAndroid Build Coastguard Worker}
400*d5c09012SAndroid Build Coastguard Worker
401*d5c09012SAndroid Build Coastguard Worker// Quota policy created by quota administrator.
402*d5c09012SAndroid Build Coastguard Workermessage AdminQuotaPolicy {
403*d5c09012SAndroid Build Coastguard Worker  // The resource name of the policy.
404*d5c09012SAndroid Build Coastguard Worker  // This name is generated by the server when the policy is created.
405*d5c09012SAndroid Build Coastguard Worker  //
406*d5c09012SAndroid Build Coastguard Worker  // Example names would be:
407*d5c09012SAndroid Build Coastguard Worker  // `organizations/123/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion/adminQuotaPolicies/4a3f2c1d`
408*d5c09012SAndroid Build Coastguard Worker  string name = 1;
409*d5c09012SAndroid Build Coastguard Worker
410*d5c09012SAndroid Build Coastguard Worker  // The quota policy value.
411*d5c09012SAndroid Build Coastguard Worker  // Can be any nonnegative integer, or -1 (unlimited quota).
412*d5c09012SAndroid Build Coastguard Worker  int64 policy_value = 2;
413*d5c09012SAndroid Build Coastguard Worker
414*d5c09012SAndroid Build Coastguard Worker  //
415*d5c09012SAndroid Build Coastguard Worker  // If this map is nonempty, then this policy applies only to specific values
416*d5c09012SAndroid Build Coastguard Worker  // for dimensions defined in the limit unit.
417*d5c09012SAndroid Build Coastguard Worker  //
418*d5c09012SAndroid Build Coastguard Worker  // For example, a policy on a limit with the unit `1/{project}/{region}`
419*d5c09012SAndroid Build Coastguard Worker  // could contain an entry with the key `region` and the value `us-east-1`;
420*d5c09012SAndroid Build Coastguard Worker  // the policy is only applied to quota consumed in that region.
421*d5c09012SAndroid Build Coastguard Worker  //
422*d5c09012SAndroid Build Coastguard Worker  // This map has the following restrictions:
423*d5c09012SAndroid Build Coastguard Worker  //
424*d5c09012SAndroid Build Coastguard Worker  // *   If `region` appears as a key, its value must be a valid Cloud region.
425*d5c09012SAndroid Build Coastguard Worker  // *   If `zone` appears as a key, its value must be a valid Cloud zone.
426*d5c09012SAndroid Build Coastguard Worker  // *   Keys other than `region` or `zone` are not valid.
427*d5c09012SAndroid Build Coastguard Worker  map<string, string> dimensions = 3;
428*d5c09012SAndroid Build Coastguard Worker
429*d5c09012SAndroid Build Coastguard Worker  // The name of the metric to which this policy applies.
430*d5c09012SAndroid Build Coastguard Worker  //
431*d5c09012SAndroid Build Coastguard Worker  // An example name would be:
432*d5c09012SAndroid Build Coastguard Worker  // `compute.googleapis.com/cpus`
433*d5c09012SAndroid Build Coastguard Worker  string metric = 4;
434*d5c09012SAndroid Build Coastguard Worker
435*d5c09012SAndroid Build Coastguard Worker  // The limit unit of the limit to which this policy applies.
436*d5c09012SAndroid Build Coastguard Worker  //
437*d5c09012SAndroid Build Coastguard Worker  // An example unit would be:
438*d5c09012SAndroid Build Coastguard Worker  // `1/{project}/{region}`
439*d5c09012SAndroid Build Coastguard Worker  // Note that `{project}` and `{region}` are not placeholders in this example;
440*d5c09012SAndroid Build Coastguard Worker  // the literal characters `{` and `}` occur in the string.
441*d5c09012SAndroid Build Coastguard Worker  string unit = 5;
442*d5c09012SAndroid Build Coastguard Worker
443*d5c09012SAndroid Build Coastguard Worker  // The cloud resource container at which the quota policy is created. The
444*d5c09012SAndroid Build Coastguard Worker  // format is `{container_type}/{container_number}`
445*d5c09012SAndroid Build Coastguard Worker  string container = 6;
446*d5c09012SAndroid Build Coastguard Worker}
447*d5c09012SAndroid Build Coastguard Worker
448*d5c09012SAndroid Build Coastguard Worker// Service identity for a service. This is the identity that service producer
449*d5c09012SAndroid Build Coastguard Worker// should use to access consumer resources.
450*d5c09012SAndroid Build Coastguard Workermessage ServiceIdentity {
451*d5c09012SAndroid Build Coastguard Worker  // The email address of the service account that a service producer would use
452*d5c09012SAndroid Build Coastguard Worker  // to access consumer resources.
453*d5c09012SAndroid Build Coastguard Worker  string email = 1;
454*d5c09012SAndroid Build Coastguard Worker
455*d5c09012SAndroid Build Coastguard Worker  // The unique and stable id of the service account.
456*d5c09012SAndroid Build Coastguard Worker  // https://cloud.google.com/iam/reference/rest/v1/projects.serviceAccounts#ServiceAccount
457*d5c09012SAndroid Build Coastguard Worker  string unique_id = 2;
458*d5c09012SAndroid Build Coastguard Worker}
459