xref: /aosp_15_r20/external/googleapis/google/api/cloudquotas/v1/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.cloudquotas.v1;
18*d5c09012SAndroid Build Coastguard Worker
19*d5c09012SAndroid Build Coastguard Workerimport "google/api/field_behavior.proto";
20*d5c09012SAndroid Build Coastguard Workerimport "google/api/resource.proto";
21*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/timestamp.proto";
22*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/wrappers.proto";
23*d5c09012SAndroid Build Coastguard Worker
24*d5c09012SAndroid Build Coastguard Workeroption csharp_namespace = "Google.Cloud.CloudQuotas.V1";
25*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/cloudquotas/apiv1/cloudquotaspb;cloudquotaspb";
26*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true;
27*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "ResourcesProto";
28*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.api.cloudquotas.v1";
29*d5c09012SAndroid Build Coastguard Workeroption php_namespace = "Google\\Cloud\\CloudQuotas\\V1";
30*d5c09012SAndroid Build Coastguard Workeroption ruby_package = "Google::Cloud::CloudQuotas::V1";
31*d5c09012SAndroid Build Coastguard Worker
32*d5c09012SAndroid Build Coastguard Worker// Enumerations of quota safety checks.
33*d5c09012SAndroid Build Coastguard Workerenum QuotaSafetyCheck {
34*d5c09012SAndroid Build Coastguard Worker  // Unspecified quota safety check.
35*d5c09012SAndroid Build Coastguard Worker  QUOTA_SAFETY_CHECK_UNSPECIFIED = 0;
36*d5c09012SAndroid Build Coastguard Worker
37*d5c09012SAndroid Build Coastguard Worker  // Validates that a quota mutation would not cause the consumer's effective
38*d5c09012SAndroid Build Coastguard Worker  // limit to be lower than the consumer's quota usage.
39*d5c09012SAndroid Build Coastguard Worker  QUOTA_DECREASE_BELOW_USAGE = 1;
40*d5c09012SAndroid Build Coastguard Worker
41*d5c09012SAndroid Build Coastguard Worker  // Validates that a quota mutation would not cause the consumer's effective
42*d5c09012SAndroid Build Coastguard Worker  // limit to decrease by more than 10 percent.
43*d5c09012SAndroid Build Coastguard Worker  QUOTA_DECREASE_PERCENTAGE_TOO_HIGH = 2;
44*d5c09012SAndroid Build Coastguard Worker}
45*d5c09012SAndroid Build Coastguard Worker
46*d5c09012SAndroid Build Coastguard Worker// QuotaInfo represents information about a particular quota for a given
47*d5c09012SAndroid Build Coastguard Worker// project, folder or organization.
48*d5c09012SAndroid Build Coastguard Workermessage QuotaInfo {
49*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
50*d5c09012SAndroid Build Coastguard Worker    type: "cloudquotas.googleapis.com/QuotaInfo"
51*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/locations/{location}/services/{service}/quotaInfos/{quota_info}"
52*d5c09012SAndroid Build Coastguard Worker    pattern: "folders/{folder}/locations/{location}/services/{service}/quotaInfos/{quota_info}"
53*d5c09012SAndroid Build Coastguard Worker    pattern: "organizations/{organization}/locations/{location}/services/{service}/quotaInfos/{quota_info}"
54*d5c09012SAndroid Build Coastguard Worker  };
55*d5c09012SAndroid Build Coastguard Worker
56*d5c09012SAndroid Build Coastguard Worker  // The enumeration of the types of a cloud resource container.
57*d5c09012SAndroid Build Coastguard Worker  enum ContainerType {
58*d5c09012SAndroid Build Coastguard Worker    // Unspecified container type.
59*d5c09012SAndroid Build Coastguard Worker    CONTAINER_TYPE_UNSPECIFIED = 0;
60*d5c09012SAndroid Build Coastguard Worker
61*d5c09012SAndroid Build Coastguard Worker    // consumer project
62*d5c09012SAndroid Build Coastguard Worker    PROJECT = 1;
63*d5c09012SAndroid Build Coastguard Worker
64*d5c09012SAndroid Build Coastguard Worker    // folder
65*d5c09012SAndroid Build Coastguard Worker    FOLDER = 2;
66*d5c09012SAndroid Build Coastguard Worker
67*d5c09012SAndroid Build Coastguard Worker    // organization
68*d5c09012SAndroid Build Coastguard Worker    ORGANIZATION = 3;
69*d5c09012SAndroid Build Coastguard Worker  }
70*d5c09012SAndroid Build Coastguard Worker
71*d5c09012SAndroid Build Coastguard Worker  // Resource name of this QuotaInfo.
72*d5c09012SAndroid Build Coastguard Worker  // The ID component following "locations/" must be "global".
73*d5c09012SAndroid Build Coastguard Worker  // Example:
74*d5c09012SAndroid Build Coastguard Worker  // `projects/123/locations/global/services/compute.googleapis.com/quotaInfos/CpusPerProjectPerRegion`
75*d5c09012SAndroid Build Coastguard Worker  string name = 1;
76*d5c09012SAndroid Build Coastguard Worker
77*d5c09012SAndroid Build Coastguard Worker  // The id of the quota, which is unquie within the service.
78*d5c09012SAndroid Build Coastguard Worker  // Example: `CpusPerProjectPerRegion`
79*d5c09012SAndroid Build Coastguard Worker  string quota_id = 2;
80*d5c09012SAndroid Build Coastguard Worker
81*d5c09012SAndroid Build Coastguard Worker  // The metric of the quota. It specifies the resources consumption the quota
82*d5c09012SAndroid Build Coastguard Worker  // is defined for.
83*d5c09012SAndroid Build Coastguard Worker  // Example: `compute.googleapis.com/cpus`
84*d5c09012SAndroid Build Coastguard Worker  string metric = 3;
85*d5c09012SAndroid Build Coastguard Worker
86*d5c09012SAndroid Build Coastguard Worker  // The name of the service in which the quota is defined.
87*d5c09012SAndroid Build Coastguard Worker  // Example: `compute.googleapis.com`
88*d5c09012SAndroid Build Coastguard Worker  string service = 4;
89*d5c09012SAndroid Build Coastguard Worker
90*d5c09012SAndroid Build Coastguard Worker  // Whether this is a precise quota. A precise quota is tracked with absolute
91*d5c09012SAndroid Build Coastguard Worker  // precision. In contrast, an imprecise quota is not tracked with precision.
92*d5c09012SAndroid Build Coastguard Worker  bool is_precise = 5;
93*d5c09012SAndroid Build Coastguard Worker
94*d5c09012SAndroid Build Coastguard Worker  // The reset time interval for the quota. Refresh interval applies to rate
95*d5c09012SAndroid Build Coastguard Worker  // quota only.
96*d5c09012SAndroid Build Coastguard Worker  // Example: "minute" for per minute, "day" for per day, or "10 seconds" for
97*d5c09012SAndroid Build Coastguard Worker  // every 10 seconds.
98*d5c09012SAndroid Build Coastguard Worker  string refresh_interval = 6;
99*d5c09012SAndroid Build Coastguard Worker
100*d5c09012SAndroid Build Coastguard Worker  // The container type of the QuotaInfo.
101*d5c09012SAndroid Build Coastguard Worker  ContainerType container_type = 7;
102*d5c09012SAndroid Build Coastguard Worker
103*d5c09012SAndroid Build Coastguard Worker  // The dimensions the quota is defined on.
104*d5c09012SAndroid Build Coastguard Worker  repeated string dimensions = 8;
105*d5c09012SAndroid Build Coastguard Worker
106*d5c09012SAndroid Build Coastguard Worker  // The display name of the quota metric
107*d5c09012SAndroid Build Coastguard Worker  string metric_display_name = 9;
108*d5c09012SAndroid Build Coastguard Worker
109*d5c09012SAndroid Build Coastguard Worker  // The display name of the quota.
110*d5c09012SAndroid Build Coastguard Worker  string quota_display_name = 10;
111*d5c09012SAndroid Build Coastguard Worker
112*d5c09012SAndroid Build Coastguard Worker  // The unit in which the metric value is reported, e.g., "MByte".
113*d5c09012SAndroid Build Coastguard Worker  string metric_unit = 11;
114*d5c09012SAndroid Build Coastguard Worker
115*d5c09012SAndroid Build Coastguard Worker  // Whether it is eligible to request a higher quota value for this quota.
116*d5c09012SAndroid Build Coastguard Worker  QuotaIncreaseEligibility quota_increase_eligibility = 12;
117*d5c09012SAndroid Build Coastguard Worker
118*d5c09012SAndroid Build Coastguard Worker  // Whether the quota value is fixed or adjustable
119*d5c09012SAndroid Build Coastguard Worker  bool is_fixed = 13;
120*d5c09012SAndroid Build Coastguard Worker
121*d5c09012SAndroid Build Coastguard Worker  // The collection of dimensions info ordered by their dimensions from more
122*d5c09012SAndroid Build Coastguard Worker  // specific ones to less specific ones.
123*d5c09012SAndroid Build Coastguard Worker  repeated DimensionsInfo dimensions_infos = 14;
124*d5c09012SAndroid Build Coastguard Worker
125*d5c09012SAndroid Build Coastguard Worker  // Whether the quota is a concurrent quota. Concurrent quotas are enforced
126*d5c09012SAndroid Build Coastguard Worker  // on the total number of concurrent operations in flight at any given time.
127*d5c09012SAndroid Build Coastguard Worker  bool is_concurrent = 15;
128*d5c09012SAndroid Build Coastguard Worker
129*d5c09012SAndroid Build Coastguard Worker  // URI to the page where users can request more quota for the cloud
130*d5c09012SAndroid Build Coastguard Worker  // service—for example,
131*d5c09012SAndroid Build Coastguard Worker  // https://console.cloud.google.com/iam-admin/quotas.
132*d5c09012SAndroid Build Coastguard Worker  string service_request_quota_uri = 17;
133*d5c09012SAndroid Build Coastguard Worker}
134*d5c09012SAndroid Build Coastguard Worker
135*d5c09012SAndroid Build Coastguard Worker// Eligibility information regarding requesting increase adjustment of a quota.
136*d5c09012SAndroid Build Coastguard Workermessage QuotaIncreaseEligibility {
137*d5c09012SAndroid Build Coastguard Worker  // The enumeration of reasons when it is ineligible to request increase
138*d5c09012SAndroid Build Coastguard Worker  // adjustment.
139*d5c09012SAndroid Build Coastguard Worker  enum IneligibilityReason {
140*d5c09012SAndroid Build Coastguard Worker    // Default value when is_eligible is true.
141*d5c09012SAndroid Build Coastguard Worker    INELIGIBILITY_REASON_UNSPECIFIED = 0;
142*d5c09012SAndroid Build Coastguard Worker
143*d5c09012SAndroid Build Coastguard Worker    // The container is not linked with a valid billing account.
144*d5c09012SAndroid Build Coastguard Worker    NO_VALID_BILLING_ACCOUNT = 1;
145*d5c09012SAndroid Build Coastguard Worker
146*d5c09012SAndroid Build Coastguard Worker    // Other reasons.
147*d5c09012SAndroid Build Coastguard Worker    OTHER = 2;
148*d5c09012SAndroid Build Coastguard Worker  }
149*d5c09012SAndroid Build Coastguard Worker
150*d5c09012SAndroid Build Coastguard Worker  // Whether a higher quota value can be requested for the quota.
151*d5c09012SAndroid Build Coastguard Worker  bool is_eligible = 1;
152*d5c09012SAndroid Build Coastguard Worker
153*d5c09012SAndroid Build Coastguard Worker  // The reason of why it is ineligible to request increased value of the quota.
154*d5c09012SAndroid Build Coastguard Worker  // If the is_eligible field is true, it defaults to
155*d5c09012SAndroid Build Coastguard Worker  // INELIGIBILITY_REASON_UNSPECIFIED.
156*d5c09012SAndroid Build Coastguard Worker  IneligibilityReason ineligibility_reason = 2;
157*d5c09012SAndroid Build Coastguard Worker}
158*d5c09012SAndroid Build Coastguard Worker
159*d5c09012SAndroid Build Coastguard Worker// QuotaPreference represents the preferred quota configuration specified for
160*d5c09012SAndroid Build Coastguard Worker// a project, folder or organization. There is only one QuotaPreference
161*d5c09012SAndroid Build Coastguard Worker// resource for a quota value targeting a unique set of dimensions.
162*d5c09012SAndroid Build Coastguard Workermessage QuotaPreference {
163*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
164*d5c09012SAndroid Build Coastguard Worker    type: "cloudquotas.googleapis.com/QuotaPreference"
165*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/locations/{location}/quotaPreferences/{quota_preference}"
166*d5c09012SAndroid Build Coastguard Worker    pattern: "folders/{folder}/locations/{location}/quotaPreferences/{quota_preference}"
167*d5c09012SAndroid Build Coastguard Worker    pattern: "organizations/{organization}/locations/{location}/quotaPreferences/{quota_preference}"
168*d5c09012SAndroid Build Coastguard Worker  };
169*d5c09012SAndroid Build Coastguard Worker
170*d5c09012SAndroid Build Coastguard Worker  // Required except in the CREATE requests.
171*d5c09012SAndroid Build Coastguard Worker  // The resource name of the quota preference.
172*d5c09012SAndroid Build Coastguard Worker  // The ID component following "locations/" must be "global".
173*d5c09012SAndroid Build Coastguard Worker  // Example:
174*d5c09012SAndroid Build Coastguard Worker  // `projects/123/locations/global/quotaPreferences/my-config-for-us-east1`
175*d5c09012SAndroid Build Coastguard Worker  string name = 1;
176*d5c09012SAndroid Build Coastguard Worker
177*d5c09012SAndroid Build Coastguard Worker  // Immutable. The dimensions that this quota preference applies to. The key of
178*d5c09012SAndroid Build Coastguard Worker  // the map entry is the name of a dimension, such as "region", "zone",
179*d5c09012SAndroid Build Coastguard Worker  // "network_id", and the value of the map entry is the dimension value.
180*d5c09012SAndroid Build Coastguard Worker  //
181*d5c09012SAndroid Build Coastguard Worker  // If a dimension is missing from the map of dimensions, the quota preference
182*d5c09012SAndroid Build Coastguard Worker  // applies to all the dimension values except for those that have other quota
183*d5c09012SAndroid Build Coastguard Worker  // preferences configured for the specific value.
184*d5c09012SAndroid Build Coastguard Worker  //
185*d5c09012SAndroid Build Coastguard Worker  // NOTE: QuotaPreferences can only be applied across all values of "user" and
186*d5c09012SAndroid Build Coastguard Worker  // "resource" dimension. Do not set values for "user" or "resource" in the
187*d5c09012SAndroid Build Coastguard Worker  // dimension map.
188*d5c09012SAndroid Build Coastguard Worker  //
189*d5c09012SAndroid Build Coastguard Worker  // Example: {"provider", "Foo Inc"} where "provider" is a service specific
190*d5c09012SAndroid Build Coastguard Worker  // dimension.
191*d5c09012SAndroid Build Coastguard Worker  map<string, string> dimensions = 2 [(google.api.field_behavior) = IMMUTABLE];
192*d5c09012SAndroid Build Coastguard Worker
193*d5c09012SAndroid Build Coastguard Worker  // Required. Preferred quota configuration.
194*d5c09012SAndroid Build Coastguard Worker  QuotaConfig quota_config = 3 [(google.api.field_behavior) = REQUIRED];
195*d5c09012SAndroid Build Coastguard Worker
196*d5c09012SAndroid Build Coastguard Worker  // Optional. The current etag of the quota preference. If an etag is provided
197*d5c09012SAndroid Build Coastguard Worker  // on update and does not match the current server's etag of the quota
198*d5c09012SAndroid Build Coastguard Worker  // preference, the request will be blocked and an ABORTED error will be
199*d5c09012SAndroid Build Coastguard Worker  // returned. See https://google.aip.dev/134#etags for more details on etags.
200*d5c09012SAndroid Build Coastguard Worker  string etag = 4 [(google.api.field_behavior) = OPTIONAL];
201*d5c09012SAndroid Build Coastguard Worker
202*d5c09012SAndroid Build Coastguard Worker  // Output only. Create time stamp
203*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp create_time = 5
204*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
205*d5c09012SAndroid Build Coastguard Worker
206*d5c09012SAndroid Build Coastguard Worker  // Output only. Update time stamp
207*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp update_time = 6
208*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
209*d5c09012SAndroid Build Coastguard Worker
210*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the service to which the quota preference is applied.
211*d5c09012SAndroid Build Coastguard Worker  string service = 7 [(google.api.field_behavior) = REQUIRED];
212*d5c09012SAndroid Build Coastguard Worker
213*d5c09012SAndroid Build Coastguard Worker  // Required. The id of the quota to which the quota preference is applied. A
214*d5c09012SAndroid Build Coastguard Worker  // quota name is unique in the service. Example: `CpusPerProjectPerRegion`
215*d5c09012SAndroid Build Coastguard Worker  string quota_id = 8 [(google.api.field_behavior) = REQUIRED];
216*d5c09012SAndroid Build Coastguard Worker
217*d5c09012SAndroid Build Coastguard Worker  // Output only. Is the quota preference pending Google Cloud approval and
218*d5c09012SAndroid Build Coastguard Worker  // fulfillment.
219*d5c09012SAndroid Build Coastguard Worker  bool reconciling = 10 [(google.api.field_behavior) = OUTPUT_ONLY];
220*d5c09012SAndroid Build Coastguard Worker
221*d5c09012SAndroid Build Coastguard Worker  // The reason / justification for this quota preference.
222*d5c09012SAndroid Build Coastguard Worker  string justification = 11;
223*d5c09012SAndroid Build Coastguard Worker
224*d5c09012SAndroid Build Coastguard Worker  // Input only. An email address that can be used to contact the the user, in
225*d5c09012SAndroid Build Coastguard Worker  // case Google Cloud needs more information to make a decision before
226*d5c09012SAndroid Build Coastguard Worker  // additional quota can be granted.
227*d5c09012SAndroid Build Coastguard Worker  //
228*d5c09012SAndroid Build Coastguard Worker  // When requesting a quota increase, the email address is required.
229*d5c09012SAndroid Build Coastguard Worker  // When requesting a quota decrease, the email address is optional.
230*d5c09012SAndroid Build Coastguard Worker  // For example, the email address is optional when the
231*d5c09012SAndroid Build Coastguard Worker  // `QuotaConfig.preferred_value` is smaller than the
232*d5c09012SAndroid Build Coastguard Worker  // `QuotaDetails.reset_value`.
233*d5c09012SAndroid Build Coastguard Worker  string contact_email = 12 [(google.api.field_behavior) = INPUT_ONLY];
234*d5c09012SAndroid Build Coastguard Worker}
235*d5c09012SAndroid Build Coastguard Worker
236*d5c09012SAndroid Build Coastguard Worker// The preferred quota configuration.
237*d5c09012SAndroid Build Coastguard Workermessage QuotaConfig {
238*d5c09012SAndroid Build Coastguard Worker  // The enumeration of the origins of quota preference requests.
239*d5c09012SAndroid Build Coastguard Worker  enum Origin {
240*d5c09012SAndroid Build Coastguard Worker    // The unspecified value.
241*d5c09012SAndroid Build Coastguard Worker    ORIGIN_UNSPECIFIED = 0;
242*d5c09012SAndroid Build Coastguard Worker
243*d5c09012SAndroid Build Coastguard Worker    // Created through Cloud Console.
244*d5c09012SAndroid Build Coastguard Worker    CLOUD_CONSOLE = 1;
245*d5c09012SAndroid Build Coastguard Worker
246*d5c09012SAndroid Build Coastguard Worker    // Generated by automatic quota adjustment.
247*d5c09012SAndroid Build Coastguard Worker    AUTO_ADJUSTER = 2;
248*d5c09012SAndroid Build Coastguard Worker  }
249*d5c09012SAndroid Build Coastguard Worker
250*d5c09012SAndroid Build Coastguard Worker  // Required. The preferred value. Must be greater than or equal to -1. If set
251*d5c09012SAndroid Build Coastguard Worker  // to -1, it means the value is "unlimited".
252*d5c09012SAndroid Build Coastguard Worker  int64 preferred_value = 1 [(google.api.field_behavior) = REQUIRED];
253*d5c09012SAndroid Build Coastguard Worker
254*d5c09012SAndroid Build Coastguard Worker  // Output only. Optional details about the state of this quota preference.
255*d5c09012SAndroid Build Coastguard Worker  string state_detail = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
256*d5c09012SAndroid Build Coastguard Worker
257*d5c09012SAndroid Build Coastguard Worker  // Output only. Granted quota value.
258*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Int64Value granted_value = 3
259*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
260*d5c09012SAndroid Build Coastguard Worker
261*d5c09012SAndroid Build Coastguard Worker  // Output only. The trace id that the Google Cloud uses to provision the
262*d5c09012SAndroid Build Coastguard Worker  // requested quota. This trace id may be used by the client to contact Cloud
263*d5c09012SAndroid Build Coastguard Worker  // support to track the state of a quota preference request. The trace id is
264*d5c09012SAndroid Build Coastguard Worker  // only produced for increase requests and is unique for each request. The
265*d5c09012SAndroid Build Coastguard Worker  // quota decrease requests do not have a trace id.
266*d5c09012SAndroid Build Coastguard Worker  string trace_id = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
267*d5c09012SAndroid Build Coastguard Worker
268*d5c09012SAndroid Build Coastguard Worker  // Optional. The annotations map for clients to store small amounts of
269*d5c09012SAndroid Build Coastguard Worker  // arbitrary data. Do not put PII or other sensitive information here. See
270*d5c09012SAndroid Build Coastguard Worker  // https://google.aip.dev/128#annotations
271*d5c09012SAndroid Build Coastguard Worker  map<string, string> annotations = 5 [(google.api.field_behavior) = OPTIONAL];
272*d5c09012SAndroid Build Coastguard Worker
273*d5c09012SAndroid Build Coastguard Worker  // Output only. The origin of the quota preference request.
274*d5c09012SAndroid Build Coastguard Worker  Origin request_origin = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
275*d5c09012SAndroid Build Coastguard Worker}
276*d5c09012SAndroid Build Coastguard Worker
277*d5c09012SAndroid Build Coastguard Worker// The detailed quota information such as effective quota value for a
278*d5c09012SAndroid Build Coastguard Worker// combination of dimensions.
279*d5c09012SAndroid Build Coastguard Workermessage DimensionsInfo {
280*d5c09012SAndroid Build Coastguard Worker  // The map of dimensions for this dimensions info. The key of a map entry
281*d5c09012SAndroid Build Coastguard Worker  // is "region", "zone" or the name of a service specific dimension, and the
282*d5c09012SAndroid Build Coastguard Worker  // value of a map entry is the value of the dimension.  If a dimension does
283*d5c09012SAndroid Build Coastguard Worker  // not appear in the map of dimensions, the dimensions info applies to all
284*d5c09012SAndroid Build Coastguard Worker  // the dimension values except for those that have another DimenisonInfo
285*d5c09012SAndroid Build Coastguard Worker  // instance configured for the specific value.
286*d5c09012SAndroid Build Coastguard Worker  // Example: {"provider" : "Foo Inc"} where "provider" is a service specific
287*d5c09012SAndroid Build Coastguard Worker  // dimension of a quota.
288*d5c09012SAndroid Build Coastguard Worker  map<string, string> dimensions = 1;
289*d5c09012SAndroid Build Coastguard Worker
290*d5c09012SAndroid Build Coastguard Worker  // Quota details for the specified dimensions.
291*d5c09012SAndroid Build Coastguard Worker  QuotaDetails details = 2;
292*d5c09012SAndroid Build Coastguard Worker
293*d5c09012SAndroid Build Coastguard Worker  // The applicable regions or zones of this dimensions info. The field will be
294*d5c09012SAndroid Build Coastguard Worker  // set to ['global'] for quotas that are not per region or per zone.
295*d5c09012SAndroid Build Coastguard Worker  // Otherwise, it will be set to the list of locations this dimension info is
296*d5c09012SAndroid Build Coastguard Worker  // applicable to.
297*d5c09012SAndroid Build Coastguard Worker  repeated string applicable_locations = 3;
298*d5c09012SAndroid Build Coastguard Worker}
299*d5c09012SAndroid Build Coastguard Worker
300*d5c09012SAndroid Build Coastguard Worker// The quota details for a map of dimensions.
301*d5c09012SAndroid Build Coastguard Workermessage QuotaDetails {
302*d5c09012SAndroid Build Coastguard Worker  // The value currently in effect and being enforced.
303*d5c09012SAndroid Build Coastguard Worker  int64 value = 1;
304*d5c09012SAndroid Build Coastguard Worker
305*d5c09012SAndroid Build Coastguard Worker  // Rollout information of this quota.
306*d5c09012SAndroid Build Coastguard Worker  // This field is present only if the effective limit will change due to the
307*d5c09012SAndroid Build Coastguard Worker  // ongoing rollout of the service config.
308*d5c09012SAndroid Build Coastguard Worker  RolloutInfo rollout_info = 3;
309*d5c09012SAndroid Build Coastguard Worker}
310*d5c09012SAndroid Build Coastguard Worker
311*d5c09012SAndroid Build Coastguard Worker// [Output only] Rollout information of a quota.
312*d5c09012SAndroid Build Coastguard Workermessage RolloutInfo {
313*d5c09012SAndroid Build Coastguard Worker  // Whether there is an ongoing rollout for a quota or not.
314*d5c09012SAndroid Build Coastguard Worker  bool ongoing_rollout = 1;
315*d5c09012SAndroid Build Coastguard Worker}
316