mirror of
https://github.com/googleapis/googleapis.git
synced 2026-08-17 13:06:47 +02:00
323 lines
12 KiB
Protocol Buffer
323 lines
12 KiB
Protocol Buffer
// Copyright 2025 Google LLC
|
|
//
|
|
// 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.cloudquotas.v1beta;
|
|
|
|
import "google/api/field_behavior.proto";
|
|
import "google/api/resource.proto";
|
|
import "google/protobuf/timestamp.proto";
|
|
import "google/protobuf/wrappers.proto";
|
|
|
|
option csharp_namespace = "Google.Cloud.CloudQuotas.V1Beta";
|
|
option go_package = "cloud.google.com/go/cloudquotas/apiv1beta/cloudquotaspb;cloudquotaspb";
|
|
option java_multiple_files = true;
|
|
option java_outer_classname = "ResourcesProto";
|
|
option java_package = "com.google.api.cloudquotas.v1beta";
|
|
option php_namespace = "Google\\Cloud\\CloudQuotas\\V1beta";
|
|
option ruby_package = "Google::Cloud::CloudQuotas::V1beta";
|
|
|
|
// Enumerations of quota safety checks.
|
|
enum QuotaSafetyCheck {
|
|
// Unspecified quota safety check.
|
|
QUOTA_SAFETY_CHECK_UNSPECIFIED = 0;
|
|
|
|
// Validates that a quota mutation would not cause the consumer's effective
|
|
// limit to be lower than the consumer's quota usage.
|
|
QUOTA_DECREASE_BELOW_USAGE = 1;
|
|
|
|
// Validates that a quota mutation would not cause the consumer's effective
|
|
// limit to decrease by more than 10 percent.
|
|
QUOTA_DECREASE_PERCENTAGE_TOO_HIGH = 2;
|
|
}
|
|
|
|
// QuotaInfo represents information about a particular quota for a given
|
|
// project, folder or organization.
|
|
message QuotaInfo {
|
|
option (google.api.resource) = {
|
|
type: "cloudquotas.googleapis.com/QuotaInfo"
|
|
pattern: "projects/{project}/locations/{location}/services/{service}/quotaInfos/{quota_info}"
|
|
pattern: "folders/{folder}/locations/{location}/services/{service}/quotaInfos/{quota_info}"
|
|
pattern: "organizations/{organization}/locations/{location}/services/{service}/quotaInfos/{quota_info}"
|
|
};
|
|
|
|
// The enumeration of the types of a cloud resource container.
|
|
enum ContainerType {
|
|
// Unspecified container type.
|
|
CONTAINER_TYPE_UNSPECIFIED = 0;
|
|
|
|
// consumer project
|
|
PROJECT = 1;
|
|
|
|
// folder
|
|
FOLDER = 2;
|
|
|
|
// organization
|
|
ORGANIZATION = 3;
|
|
}
|
|
|
|
// Resource name of this QuotaInfo.
|
|
// The ID component following "locations/" must be "global".
|
|
// For example,
|
|
// `projects/123/locations/global/services/compute.googleapis.com/quotaInfos/CpusPerProjectPerRegion`
|
|
string name = 1;
|
|
|
|
// The id of the quota, which is unique within the service.
|
|
// For example, `CpusPerProjectPerRegion`
|
|
string quota_id = 2;
|
|
|
|
// The metric of the quota. It specifies the resources consumption the quota
|
|
// is defined for.
|
|
// For example, `compute.googleapis.com/cpus`
|
|
string metric = 3;
|
|
|
|
// The name of the service in which the quota is defined.
|
|
// For example, `compute.googleapis.com`
|
|
string service = 4;
|
|
|
|
// Whether this is a precise quota. A precise quota is tracked with absolute
|
|
// precision. In contrast, an imprecise quota is not tracked with precision.
|
|
bool is_precise = 5;
|
|
|
|
// The reset time interval for the quota. Refresh interval applies to rate
|
|
// quota only.
|
|
// For example, "minute" for per minute, "day" for per day, or "10 seconds"
|
|
// for every 10 seconds.
|
|
string refresh_interval = 6;
|
|
|
|
// The container type of the QuotaInfo.
|
|
ContainerType container_type = 7;
|
|
|
|
// The dimensions the quota is defined on.
|
|
repeated string dimensions = 8;
|
|
|
|
// The display name of the quota metric
|
|
string metric_display_name = 9;
|
|
|
|
// The display name of the quota.
|
|
string quota_display_name = 10;
|
|
|
|
// The unit in which the metric value is reported, e.g., "MByte".
|
|
string metric_unit = 11;
|
|
|
|
// Whether it is eligible to request a higher quota value for this quota.
|
|
QuotaIncreaseEligibility quota_increase_eligibility = 12;
|
|
|
|
// Whether the quota value is fixed or adjustable
|
|
bool is_fixed = 13;
|
|
|
|
// The collection of dimensions info ordered by their dimensions from more
|
|
// specific ones to less specific ones.
|
|
repeated DimensionsInfo dimensions_infos = 14;
|
|
|
|
// Whether the quota is a concurrent quota. Concurrent quotas are enforced
|
|
// on the total number of concurrent operations in flight at any given time.
|
|
bool is_concurrent = 15;
|
|
|
|
// URI to the page where users can request more quota for the cloud
|
|
// service—for example,
|
|
// https://console.cloud.google.com/iam-admin/quotas.
|
|
string service_request_quota_uri = 17;
|
|
}
|
|
|
|
// Eligibility information regarding requesting increase adjustment of a quota.
|
|
message QuotaIncreaseEligibility {
|
|
// The enumeration of reasons when it is ineligible to request increase
|
|
// adjustment.
|
|
enum IneligibilityReason {
|
|
// Default value when is_eligible is true.
|
|
INELIGIBILITY_REASON_UNSPECIFIED = 0;
|
|
|
|
// The container is not linked with a valid billing account.
|
|
NO_VALID_BILLING_ACCOUNT = 1;
|
|
|
|
// Quota increase is not supported for the quota.
|
|
NOT_SUPPORTED = 3;
|
|
|
|
// There is not enough usage history to determine the eligibility.
|
|
NOT_ENOUGH_USAGE_HISTORY = 4;
|
|
|
|
// Other reasons.
|
|
OTHER = 2;
|
|
}
|
|
|
|
// Whether a higher quota value can be requested for the quota.
|
|
bool is_eligible = 1;
|
|
|
|
// The reason of why it is ineligible to request increased value of the quota.
|
|
// If the is_eligible field is true, it defaults to
|
|
// INELIGIBILITY_REASON_UNSPECIFIED.
|
|
IneligibilityReason ineligibility_reason = 2;
|
|
}
|
|
|
|
// QuotaPreference represents the preferred quota configuration specified for
|
|
// a project, folder or organization. There is only one QuotaPreference
|
|
// resource for a quota value targeting a unique set of dimensions.
|
|
message QuotaPreference {
|
|
option (google.api.resource) = {
|
|
type: "cloudquotas.googleapis.com/QuotaPreference"
|
|
pattern: "projects/{project}/locations/{location}/quotaPreferences/{quota_preference}"
|
|
pattern: "folders/{folder}/locations/{location}/quotaPreferences/{quota_preference}"
|
|
pattern: "organizations/{organization}/locations/{location}/quotaPreferences/{quota_preference}"
|
|
};
|
|
|
|
// Required except in the CREATE requests.
|
|
// The resource name of the quota preference.
|
|
// The path that follows `/locations` must be `/global`.
|
|
// For example:
|
|
// `projects/123/locations/global/quotaPreferences/my-config-for-us-east1`
|
|
string name = 1;
|
|
|
|
// Immutable. The dimensions that this quota preference applies to. The key of
|
|
// the map entry is the name of a dimension, such as `region`, `zone`,
|
|
// `network_id`, and the value of the map entry is the dimension value.
|
|
//
|
|
// If a dimension is missing from the map of dimensions, the quota preference
|
|
// applies to all the dimension values except for those that have other quota
|
|
// preferences configured for the specific value.
|
|
//
|
|
// Note: QuotaPreferences can only be applied across all values of `user` and
|
|
// `resource` dimension. Do not set values for `user` or `resource` in the
|
|
// dimension map.
|
|
//
|
|
// For example: `{"provider" : "Example Organization"}` where `provider` is a
|
|
// service-specific quota dimension and `Example Organization` is the provider
|
|
// name.
|
|
map<string, string> dimensions = 2 [(google.api.field_behavior) = IMMUTABLE];
|
|
|
|
// Required. Preferred quota configuration.
|
|
QuotaConfig quota_config = 3 [(google.api.field_behavior) = REQUIRED];
|
|
|
|
// Optional. The current etag of the quota preference. If an etag is provided
|
|
// on update and does not match the current server's etag of the quota
|
|
// preference, the request will be blocked and an ABORTED error will be
|
|
// returned. See https://google.aip.dev/134#etags for more details on etags.
|
|
string etag = 4 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Output only. Create time stamp
|
|
google.protobuf.Timestamp create_time = 5
|
|
[(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Output only. Update time stamp
|
|
google.protobuf.Timestamp update_time = 6
|
|
[(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Required. The name of the service to which the quota preference is applied.
|
|
string service = 7 [(google.api.field_behavior) = REQUIRED];
|
|
|
|
// Required. The id of the quota to which the quota preference is applied. A
|
|
// quota name is unique in the service. For example, `CpusPerProjectPerRegion`
|
|
string quota_id = 8 [(google.api.field_behavior) = REQUIRED];
|
|
|
|
// Output only. Is the quota preference pending Google Cloud approval and
|
|
// fulfillment.
|
|
bool reconciling = 10 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// The reason / justification for this quota preference.
|
|
string justification = 11;
|
|
|
|
// Input only. An email address that can be used to contact the user, in case
|
|
// Google Cloud needs more information to make a decision before additional
|
|
// quota can be granted.
|
|
//
|
|
// When requesting a quota increase, the email address is required.
|
|
// When requesting a quota decrease, the email address is optional.
|
|
// For example, the email address is optional when the
|
|
// `QuotaConfig.preferred_value` is smaller than the
|
|
// `QuotaDetails.reset_value`.
|
|
string contact_email = 12 [(google.api.field_behavior) = INPUT_ONLY];
|
|
}
|
|
|
|
// The preferred quota configuration.
|
|
message QuotaConfig {
|
|
// The enumeration of the origins of quota preference requests.
|
|
enum Origin {
|
|
// The unspecified value.
|
|
ORIGIN_UNSPECIFIED = 0;
|
|
|
|
// Created through Cloud Console.
|
|
CLOUD_CONSOLE = 1;
|
|
|
|
// Generated by automatic quota adjustment.
|
|
AUTO_ADJUSTER = 2;
|
|
}
|
|
|
|
// Required. The preferred value. Must be greater than or equal to -1. If set
|
|
// to -1, it means the value is "unlimited".
|
|
int64 preferred_value = 1 [(google.api.field_behavior) = REQUIRED];
|
|
|
|
// Output only. Optional details about the state of this quota preference.
|
|
string state_detail = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Output only. Granted quota value.
|
|
google.protobuf.Int64Value granted_value = 3
|
|
[(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Output only. The trace id that the Google Cloud uses to provision the
|
|
// requested quota. This trace id may be used by the client to contact Cloud
|
|
// support to track the state of a quota preference request. The trace id is
|
|
// only produced for increase requests and is unique for each request. The
|
|
// quota decrease requests do not have a trace id.
|
|
string trace_id = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Optional. The annotations map for clients to store small amounts of
|
|
// arbitrary data. Do not put PII or other sensitive information here. See
|
|
// https://google.aip.dev/128#annotations
|
|
map<string, string> annotations = 5 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Output only. The origin of the quota preference request.
|
|
Origin request_origin = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
}
|
|
|
|
// The detailed quota information such as effective quota value for a
|
|
// combination of dimensions.
|
|
message DimensionsInfo {
|
|
// The map of dimensions in key-value pairs. The key of a map entry
|
|
// is "region", "zone", or the name of a service-specific dimension, and the
|
|
// value of a map entry is the value of the dimension. If a dimension does
|
|
// not appear in the map of dimensions, the dimensions info applies to all
|
|
// the dimension values except for those that have another DimensionInfo
|
|
// instance configured for the specific value.
|
|
// For example: `{"provider" : "Example Organization"}` where `provider` is a
|
|
// service-specific quota dimension and `Example Organization` is the provider
|
|
// name.
|
|
map<string, string> dimensions = 1;
|
|
|
|
// Quota details for the specified dimensions.
|
|
QuotaDetails details = 2;
|
|
|
|
// The applicable regions or zones of this dimension. The field is
|
|
// set to ['global'] for quotas that are not per region or per zone.
|
|
// Otherwise, it will be set to the list of locations this dimension info is
|
|
// applicable to.
|
|
repeated string applicable_locations = 3;
|
|
}
|
|
|
|
// The quota details for a map of dimensions.
|
|
message QuotaDetails {
|
|
// The value currently in effect and being enforced.
|
|
int64 value = 1;
|
|
|
|
// Rollout information of this quota.
|
|
// This field is present only if the effective limit will change due to the
|
|
// ongoing rollout of the service config.
|
|
RolloutInfo rollout_info = 3;
|
|
}
|
|
|
|
// [Output only] Rollout information of a quota.
|
|
message RolloutInfo {
|
|
// Whether there is an ongoing rollout for a quota or not.
|
|
bool ongoing_rollout = 1;
|
|
}
|