initial commit

This commit is contained in:
2025-09-01 22:12:29 +02:00
parent b1873f9c1d
commit 02a54f61c0
5598 changed files with 903558 additions and 0 deletions

View File

@@ -0,0 +1,130 @@
// Copyright 2023 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.serviceusage.v1;
import "google/api/auth.proto";
import "google/api/documentation.proto";
import "google/api/endpoint.proto";
import "google/api/monitored_resource.proto";
import "google/api/monitoring.proto";
import "google/api/quota.proto";
import "google/api/resource.proto";
import "google/api/usage.proto";
import "google/protobuf/api.proto";
option csharp_namespace = "Google.Cloud.ServiceUsage.V1";
option go_package = "cloud.google.com/go/serviceusage/apiv1/serviceusagepb;serviceusagepb";
option java_multiple_files = true;
option java_outer_classname = "ResourcesProto";
option java_package = "com.google.api.serviceusage.v1";
option php_namespace = "Google\\Cloud\\ServiceUsage\\V1";
option ruby_package = "Google::Cloud::ServiceUsage::V1";
// A service that is available for use by the consumer.
message Service {
option (google.api.resource) = {
type: "serviceusage.googleapis.com/Service"
pattern: "projects/{project}/services/{service}"
pattern: "folders/{folder}/services/{service}"
pattern: "organizations/{organization}/services/{service}"
};
// The resource name of the consumer and service.
//
// A valid name would be:
// - projects/123/services/serviceusage.googleapis.com
string name = 1;
// The resource name of the consumer.
//
// A valid name would be:
// - projects/123
string parent = 5;
// The service configuration of the available service.
// Some fields may be filtered out of the configuration in responses to
// the `ListServices` method. These fields are present only in responses to
// the `GetService` method.
ServiceConfig config = 2;
// Whether or not the service has been enabled for use by the consumer.
State state = 4;
}
// Whether or not a service has been enabled for use by a consumer.
enum State {
// The default value, which indicates that the enabled state of the service
// is unspecified or not meaningful. Currently, all consumers other than
// projects (such as folders and organizations) are always in this state.
STATE_UNSPECIFIED = 0;
// The service cannot be used by this consumer. It has either been explicitly
// disabled, or has never been enabled.
DISABLED = 1;
// The service has been explicitly enabled for use by this consumer.
ENABLED = 2;
}
// The configuration of the service.
message ServiceConfig {
// The DNS address at which this service is available.
//
// An example DNS address would be:
// `calendar.googleapis.com`.
string name = 1;
// The product title for this service.
string title = 2;
// A list of API interfaces exported by this service. Contains only the names,
// versions, and method names of the interfaces.
repeated google.protobuf.Api apis = 3;
// Additional API documentation. Contains only the summary and the
// documentation URL.
google.api.Documentation documentation = 6;
// Quota configuration.
google.api.Quota quota = 10;
// Auth configuration. Contains only the OAuth rules.
google.api.Authentication authentication = 11;
// Configuration controlling usage of this service.
google.api.Usage usage = 15;
// Configuration for network endpoints. Contains only the names and aliases
// of the endpoints.
repeated google.api.Endpoint endpoints = 18;
// Defines the monitored resources used by this service. This is required
// by the [Service.monitoring][google.api.Service.monitoring] and
// [Service.logging][google.api.Service.logging] configurations.
repeated google.api.MonitoredResourceDescriptor monitored_resources = 25;
// Monitoring configuration.
// This should not include the 'producer_destinations' field.
google.api.Monitoring monitoring = 28;
}
// The operation metadata returned for the batchend services operation.
message OperationMetadata {
// The full name of the resources that this operation is directly
// associated with.
repeated string resource_names = 2;
}

View File

@@ -0,0 +1,305 @@
// Copyright 2023 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.serviceusage.v1;
import "google/api/annotations.proto";
import "google/api/client.proto";
import "google/api/serviceusage/v1/resources.proto";
import "google/longrunning/operations.proto";
option csharp_namespace = "Google.Cloud.ServiceUsage.V1";
option go_package = "cloud.google.com/go/serviceusage/apiv1/serviceusagepb;serviceusagepb";
option java_multiple_files = true;
option java_outer_classname = "ServiceUsageProto";
option java_package = "com.google.api.serviceusage.v1";
option php_namespace = "Google\\Cloud\\ServiceUsage\\V1";
option ruby_package = "Google::Cloud::ServiceUsage::V1";
// Enables services that service consumers want to use on Google Cloud Platform,
// lists the available or enabled services, or disables services that service
// consumers no longer use.
//
// See [Service Usage API](https://cloud.google.com/service-usage/docs/overview)
service ServiceUsage {
option (google.api.default_host) = "serviceusage.googleapis.com";
option (google.api.oauth_scopes) =
"https://www.googleapis.com/auth/cloud-platform,"
"https://www.googleapis.com/auth/cloud-platform.read-only,"
"https://www.googleapis.com/auth/service.management";
// Enable a service so that it can be used with a project.
rpc EnableService(EnableServiceRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1/{name=*/*/services/*}:enable"
body: "*"
};
option (google.longrunning.operation_info) = {
response_type: "EnableServiceResponse"
metadata_type: "OperationMetadata"
};
}
// Disable a service so that it can no longer be used with a project.
// This prevents unintended usage that may cause unexpected billing
// charges or security leaks.
//
// It is not valid to call the disable method on a service that is not
// currently enabled. Callers will receive a `FAILED_PRECONDITION` status if
// the target service is not currently enabled.
rpc DisableService(DisableServiceRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1/{name=*/*/services/*}:disable"
body: "*"
};
option (google.longrunning.operation_info) = {
response_type: "DisableServiceResponse"
metadata_type: "OperationMetadata"
};
}
// Returns the service configuration and enabled state for a given service.
rpc GetService(GetServiceRequest) returns (Service) {
option (google.api.http) = {
get: "/v1/{name=*/*/services/*}"
};
}
// List all services available to the specified project, and the current
// state of those services with respect to the project. The list includes
// all public services, all services for which the calling user has the
// `servicemanagement.services.bind` permission, and all services that have
// already been enabled on the project. The list can be filtered to
// only include services in a specific state, for example to only include
// services enabled on the project.
//
// WARNING: If you need to query enabled services frequently or across
// an organization, you should use
// [Cloud Asset Inventory
// API](https://cloud.google.com/asset-inventory/docs/apis), which provides
// higher throughput and richer filtering capability.
rpc ListServices(ListServicesRequest) returns (ListServicesResponse) {
option (google.api.http) = {
get: "/v1/{parent=*/*}/services"
};
}
// Enable multiple services on a project. The operation is atomic: if enabling
// any service fails, then the entire batch fails, and no state changes occur.
// To enable a single service, use the `EnableService` method instead.
rpc BatchEnableServices(BatchEnableServicesRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1/{parent=*/*}/services:batchEnable"
body: "*"
};
option (google.longrunning.operation_info) = {
response_type: "BatchEnableServicesResponse"
metadata_type: "OperationMetadata"
};
}
// Returns the service configurations and enabled states for a given list of
// services.
rpc BatchGetServices(BatchGetServicesRequest)
returns (BatchGetServicesResponse) {
option (google.api.http) = {
get: "/v1/{parent=*/*}/services:batchGet"
};
}
}
// Request message for the `EnableService` method.
message EnableServiceRequest {
// Name of the consumer and service to enable the service on.
//
// The `EnableService` and `DisableService` methods currently only support
// projects.
//
// Enabling a service requires that the service is public or is shared with
// the user enabling the service.
//
// An example name would be:
// `projects/123/services/serviceusage.googleapis.com` where `123` is the
// project number.
string name = 1;
}
// Response message for the `EnableService` method.
// This response message is assigned to the `response` field of the returned
// Operation when that operation is done.
message EnableServiceResponse {
// The new state of the service after enabling.
Service service = 1;
}
// Request message for the `DisableService` method.
message DisableServiceRequest {
// Enum to determine if service usage should be checked when disabling a
// service.
enum CheckIfServiceHasUsage {
// When unset, the default behavior is used, which is SKIP.
CHECK_IF_SERVICE_HAS_USAGE_UNSPECIFIED = 0;
// If set, skip checking service usage when disabling a service.
SKIP = 1;
// If set, service usage is checked when disabling the service. If a
// service, or its dependents, has usage in the last 30 days, the request
// returns a FAILED_PRECONDITION error.
CHECK = 2;
}
// Name of the consumer and service to disable the service on.
//
// The enable and disable methods currently only support projects.
//
// An example name would be:
// `projects/123/services/serviceusage.googleapis.com` where `123` is the
// project number.
string name = 1;
// Indicates if services that are enabled and which depend on this service
// should also be disabled. If not set, an error will be generated if any
// enabled services depend on the service to be disabled. When set, the
// service, and any enabled services that depend on it, will be disabled
// together.
bool disable_dependent_services = 2;
// Defines the behavior for checking service usage when disabling a service.
CheckIfServiceHasUsage check_if_service_has_usage = 3;
}
// Response message for the `DisableService` method.
// This response message is assigned to the `response` field of the returned
// Operation when that operation is done.
message DisableServiceResponse {
// The new state of the service after disabling.
Service service = 1;
}
// Request message for the `GetService` method.
message GetServiceRequest {
// Name of the consumer and service to get the `ConsumerState` for.
//
// An example name would be:
// `projects/123/services/serviceusage.googleapis.com` where `123` is the
// project number.
string name = 1;
}
// Request message for the `ListServices` method.
message ListServicesRequest {
// Parent to search for services on.
//
// An example name would be:
// `projects/123` where `123` is the project number.
string parent = 1;
// Requested size of the next page of data.
// Requested page size cannot exceed 200.
// If not set, the default page size is 50.
int32 page_size = 2;
// Token identifying which result to start with, which is returned by a
// previous list call.
string page_token = 3;
// Only list services that conform to the given filter.
// The allowed filter strings are `state:ENABLED` and `state:DISABLED`.
string filter = 4;
}
// Response message for the `ListServices` method.
message ListServicesResponse {
// The available services for the requested project.
repeated Service services = 1;
// Token that can be passed to `ListServices` to resume a paginated
// query.
string next_page_token = 2;
}
// Request message for the `BatchEnableServices` method.
message BatchEnableServicesRequest {
// Parent to enable services on.
//
// An example name would be:
// `projects/123` where `123` is the project number.
//
// The `BatchEnableServices` method currently only supports projects.
string parent = 1;
// The identifiers of the services to enable on the project.
//
// A valid identifier would be:
// serviceusage.googleapis.com
//
// Enabling services requires that each service is public or is shared with
// the user enabling the service.
//
// A single request can enable a maximum of 20 services at a time. If more
// than 20 services are specified, the request will fail, and no state changes
// will occur.
repeated string service_ids = 2;
}
// Response message for the `BatchEnableServices` method.
// This response message is assigned to the `response` field of the returned
// Operation when that operation is done.
message BatchEnableServicesResponse {
// Provides error messages for the failing services.
message EnableFailure {
// The service id of a service that could not be enabled.
string service_id = 1;
// An error message describing why the service could not be enabled.
string error_message = 2;
}
// The new state of the services after enabling.
repeated Service services = 1;
// If allow_partial_success is true, and one or more services could not be
// enabled, this field contains the details about each failure.
repeated EnableFailure failures = 2;
}
// Request message for the `BatchGetServices` method.
message BatchGetServicesRequest {
// Parent to retrieve services from.
// If this is set, the parent of all of the services specified in `names` must
// match this field. An example name would be: `projects/123` where `123` is
// the project number. The `BatchGetServices` method currently only supports
// projects.
string parent = 1;
// Names of the services to retrieve.
//
// An example name would be:
// `projects/123/services/serviceusage.googleapis.com` where `123` is the
// project number.
// A single request can get a maximum of 30 services at a time.
repeated string names = 2;
}
// Response message for the `BatchGetServices` method.
message BatchGetServicesResponse {
// The requested Service states.
repeated Service services = 1;
}

View File

@@ -0,0 +1,458 @@
// Copyright 2023 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.serviceusage.v1beta1;
import "google/api/auth.proto";
import "google/api/documentation.proto";
import "google/api/endpoint.proto";
import "google/api/monitored_resource.proto";
import "google/api/monitoring.proto";
import "google/api/quota.proto";
import "google/api/usage.proto";
import "google/protobuf/api.proto";
option csharp_namespace = "Google.Api.ServiceUsage.V1Beta1";
option go_package = "google.golang.org/genproto/googleapis/api/serviceusage/v1beta1;serviceusage";
option java_multiple_files = true;
option java_outer_classname = "ResourcesProto";
option java_package = "com.google.api.serviceusage.v1beta1";
option php_namespace = "Google\\Api\\ServiceUsage\\V1beta1";
option ruby_package = "Google::Api::ServiceUsage::V1beta1";
// A service that is available for use by the consumer.
message Service {
// The resource name of the consumer and service.
//
// A valid name would be:
// - `projects/123/services/serviceusage.googleapis.com`
string name = 1;
// The resource name of the consumer.
//
// A valid name would be:
// - `projects/123`
string parent = 5;
// The service configuration of the available service.
// Some fields may be filtered out of the configuration in responses to
// the `ListServices` method. These fields are present only in responses to
// the `GetService` method.
ServiceConfig config = 2;
// Whether or not the service has been enabled for use by the consumer.
State state = 4;
}
// Whether or not a service has been enabled for use by a consumer.
enum State {
// The default value, which indicates that the enabled state of the service
// is unspecified or not meaningful. Currently, all consumers other than
// projects (such as folders and organizations) are always in this state.
STATE_UNSPECIFIED = 0;
// The service cannot be used by this consumer. It has either been explicitly
// disabled, or has never been enabled.
DISABLED = 1;
// The service has been explicitly enabled for use by this consumer.
ENABLED = 2;
}
// The configuration of the service.
message ServiceConfig {
// The DNS address at which this service is available.
//
// An example DNS address would be:
// `calendar.googleapis.com`.
string name = 1;
// The product title for this service.
string title = 2;
// A list of API interfaces exported by this service. Contains only the names,
// versions, and method names of the interfaces.
repeated google.protobuf.Api apis = 3;
// Additional API documentation. Contains only the summary and the
// documentation URL.
google.api.Documentation documentation = 6;
// Quota configuration.
google.api.Quota quota = 10;
// Auth configuration. Contains only the OAuth rules.
google.api.Authentication authentication = 11;
// Configuration controlling usage of this service.
google.api.Usage usage = 15;
// Configuration for network endpoints. Contains only the names and aliases
// of the endpoints.
repeated google.api.Endpoint endpoints = 18;
// Defines the monitored resources used by this service. This is required
// by the [Service.monitoring][google.api.Service.monitoring] and
// [Service.logging][google.api.Service.logging] configurations.
repeated google.api.MonitoredResourceDescriptor monitored_resources = 25;
// Monitoring configuration.
// This should not include the 'producer_destinations' field.
google.api.Monitoring monitoring = 28;
}
// The operation metadata returned for the batchend services operation.
message OperationMetadata {
// The full name of the resources that this operation is directly
// associated with.
repeated string resource_names = 2;
}
// Consumer quota settings for a quota metric.
message ConsumerQuotaMetric {
// The resource name of the quota settings on this metric for this consumer.
//
// An example name would be:
// `projects/123/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fcpus`
//
// The resource name is intended to be opaque and should not be parsed for
// its component strings, since its representation could change in the future.
string name = 1;
// The name of the metric.
//
// An example name would be:
// `compute.googleapis.com/cpus`
string metric = 4;
// The display name of the metric.
//
// An example name would be:
// `CPUs`
string display_name = 2;
// The consumer quota for each quota limit defined on the metric.
repeated ConsumerQuotaLimit consumer_quota_limits = 3;
// The quota limits targeting the descendant containers of the
// consumer in request.
//
// If the consumer in request is of type `organizations`
// or `folders`, the field will list per-project limits in the metric; if the
// consumer in request is of type `project`, the field will be empty.
//
// The `quota_buckets` field of each descendant consumer quota limit will not
// be populated.
repeated ConsumerQuotaLimit descendant_consumer_quota_limits = 6;
// The units in which the metric value is reported.
string unit = 5;
}
// Consumer quota settings for a quota limit.
message ConsumerQuotaLimit {
// The resource name of the quota limit.
//
// An example name would be:
// `projects/123/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion`
//
// The resource name is intended to be opaque and should not be parsed for
// its component strings, since its representation could change in the future.
string name = 1;
// The name of the parent metric of this limit.
//
// An example name would be:
// `compute.googleapis.com/cpus`
string metric = 8;
// The limit unit.
//
// An example unit would be
// `1/{project}/{region}`
// Note that `{project}` and `{region}` are not placeholders in this example;
// the literal characters `{` and `}` occur in the string.
string unit = 2;
// Whether this limit is precise or imprecise.
bool is_precise = 3;
// Whether admin overrides are allowed on this limit
bool allows_admin_overrides = 7;
// Summary of the enforced quota buckets, organized by quota dimension,
// ordered from least specific to most specific (for example, the global
// default bucket, with no quota dimensions, will always appear first).
repeated QuotaBucket quota_buckets = 9;
// List of all supported locations.
// This field is present only if the limit has a {region} or {zone} dimension.
repeated string supported_locations = 11;
}
// Selected view of quota. Can be used to request more detailed quota
// information when retrieving quota metrics and limits.
enum QuotaView {
// No quota view specified. Requests that do not specify a quota view will
// typically default to the BASIC view.
QUOTA_VIEW_UNSPECIFIED = 0;
// Only buckets with overrides are shown in the response.
BASIC = 1;
// Include per-location buckets even if they do not have overrides.
// When the view is FULL, and a limit has regional or zonal quota, the limit
// will include buckets for all regions or zones that could support
// overrides, even if none are currently present. In some cases this will
// cause the response to become very large; callers that do not need this
// extra information should use the BASIC view instead.
FULL = 2;
}
// A quota bucket is a quota provisioning unit for a specific set of dimensions.
message QuotaBucket {
// The effective limit of this quota bucket. Equal to default_limit if there
// are no overrides.
int64 effective_limit = 1;
// The default limit of this quota bucket, as specified by the service
// configuration.
int64 default_limit = 2;
// Producer override on this quota bucket.
QuotaOverride producer_override = 3;
// Consumer override on this quota bucket.
QuotaOverride consumer_override = 4;
// Admin override on this quota bucket.
QuotaOverride admin_override = 5;
// Producer policy inherited from the closet ancestor of the current consumer.
ProducerQuotaPolicy producer_quota_policy = 7;
// The dimensions of this quota bucket.
//
// If this map is empty, this is the global bucket, which is the default quota
// value applied to all requests that do not have a more specific override.
//
// If this map is nonempty, the default limit, effective limit, and quota
// overrides apply only to requests that have the dimensions given in the map.
//
// For example, if the map has key `region` and value `us-east-1`, then the
// specified effective limit is only effective in that region, and the
// specified overrides apply only in that region.
map<string, string> dimensions = 6;
}
// A quota override
message QuotaOverride {
// The resource name of the override.
// This name is generated by the server when the override is created.
//
// Example names would be:
// `projects/123/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion/adminOverrides/4a3f2c1d`
// `projects/123/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion/consumerOverrides/4a3f2c1d`
//
// The resource name is intended to be opaque and should not be parsed for
// its component strings, since its representation could change in the future.
string name = 1;
// The overriding quota limit value.
// Can be any nonnegative integer, or -1 (unlimited quota).
int64 override_value = 2;
// If this map is nonempty, then this override applies only to specific values
// for dimensions defined in the limit unit.
//
// For example, an override on a limit with the unit `1/{project}/{region}`
// could contain an entry with the key `region` and the value `us-east-1`;
// the override is only applied to quota consumed in that region.
//
// This map has the following restrictions:
//
// * Keys that are not defined in the limit's unit are not valid keys.
// Any string appearing in `{brackets}` in the unit (besides `{project}`
// or
// `{user}`) is a defined key.
// * `project` is not a valid key; the project is already specified in
// the parent resource name.
// * `user` is not a valid key; the API does not support quota overrides
// that apply only to a specific user.
// * If `region` appears as a key, its value must be a valid Cloud region.
// * If `zone` appears as a key, its value must be a valid Cloud zone.
// * If any valid key other than `region` or `zone` appears in the map, then
// all valid keys other than `region` or `zone` must also appear in the
// map.
map<string, string> dimensions = 3;
// The name of the metric to which this override applies.
//
// An example name would be:
// `compute.googleapis.com/cpus`
string metric = 4;
// The limit unit of the limit to which this override applies.
//
// An example unit would be:
// `1/{project}/{region}`
// Note that `{project}` and `{region}` are not placeholders in this example;
// the literal characters `{` and `}` occur in the string.
string unit = 5;
// The resource name of the ancestor that requested the override. For example:
// `organizations/12345` or `folders/67890`.
// Used by admin overrides only.
string admin_override_ancestor = 6;
}
// Import data embedded in the request message
message OverrideInlineSource {
// The overrides to create.
// Each override must have a value for 'metric' and 'unit', to specify
// which metric and which limit the override should be applied to.
// The 'name' field of the override does not need to be set; it is ignored.
repeated QuotaOverride overrides = 1;
}
// 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.
LIMIT_DECREASE_BELOW_USAGE = 1;
// Validates that a quota mutation would not cause the consumer's effective
// limit to decrease by more than 10 percent.
LIMIT_DECREASE_PERCENTAGE_TOO_HIGH = 2;
}
// Quota policy created by service producer.
message ProducerQuotaPolicy {
// The resource name of the policy.
// This name is generated by the server when the policy is created.
//
// Example names would be:
// `organizations/123/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion/producerQuotaPolicies/4a3f2c1d`
string name = 1;
// The quota policy value.
// Can be any nonnegative integer, or -1 (unlimited quota).
int64 policy_value = 2;
//
// If this map is nonempty, then this policy applies only to specific values
// for dimensions defined in the limit unit.
//
// For example, a policy on a limit with the unit `1/{project}/{region}`
// could contain an entry with the key `region` and the value `us-east-1`;
// the policy is only applied to quota consumed in that region.
//
// This map has the following restrictions:
//
// * Keys that are not defined in the limit's unit are not valid keys.
// Any string appearing in {brackets} in the unit (besides {project} or
// {user}) is a defined key.
// * `project` is not a valid key; the project is already specified in
// the parent resource name.
// * `user` is not a valid key; the API does not support quota policies
// that apply only to a specific user.
// * If `region` appears as a key, its value must be a valid Cloud region.
// * If `zone` appears as a key, its value must be a valid Cloud zone.
// * If any valid key other than `region` or `zone` appears in the map, then
// all valid keys other than `region` or `zone` must also appear in the
// map.
map<string, string> dimensions = 3;
// The name of the metric to which this policy applies.
//
// An example name would be:
// `compute.googleapis.com/cpus`
string metric = 4;
// The limit unit of the limit to which this policy applies.
//
// An example unit would be:
// `1/{project}/{region}`
// Note that `{project}` and `{region}` are not placeholders in this example;
// the literal characters `{` and `}` occur in the string.
string unit = 5;
// The cloud resource container at which the quota policy is created. The
// format is `{container_type}/{container_number}`
string container = 6;
}
// Quota policy created by quota administrator.
message AdminQuotaPolicy {
// The resource name of the policy.
// This name is generated by the server when the policy is created.
//
// Example names would be:
// `organizations/123/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion/adminQuotaPolicies/4a3f2c1d`
string name = 1;
// The quota policy value.
// Can be any nonnegative integer, or -1 (unlimited quota).
int64 policy_value = 2;
//
// If this map is nonempty, then this policy applies only to specific values
// for dimensions defined in the limit unit.
//
// For example, a policy on a limit with the unit `1/{project}/{region}`
// could contain an entry with the key `region` and the value `us-east-1`;
// the policy is only applied to quota consumed in that region.
//
// This map has the following restrictions:
//
// * If `region` appears as a key, its value must be a valid Cloud region.
// * If `zone` appears as a key, its value must be a valid Cloud zone.
// * Keys other than `region` or `zone` are not valid.
map<string, string> dimensions = 3;
// The name of the metric to which this policy applies.
//
// An example name would be:
// `compute.googleapis.com/cpus`
string metric = 4;
// The limit unit of the limit to which this policy applies.
//
// An example unit would be:
// `1/{project}/{region}`
// Note that `{project}` and `{region}` are not placeholders in this example;
// the literal characters `{` and `}` occur in the string.
string unit = 5;
// The cloud resource container at which the quota policy is created. The
// format is `{container_type}/{container_number}`
string container = 6;
}
// Service identity for a service. This is the identity that service producer
// should use to access consumer resources.
message ServiceIdentity {
// The email address of the service account that a service producer would use
// to access consumer resources.
string email = 1;
// The unique and stable id of the service account.
// https://cloud.google.com/iam/reference/rest/v1/projects.serviceAccounts#ServiceAccount
string unique_id = 2;
}

View File

@@ -0,0 +1,793 @@
// Copyright 2023 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.serviceusage.v1beta1;
import "google/api/annotations.proto";
import "google/api/client.proto";
import "google/api/field_behavior.proto";
import "google/api/serviceusage/v1beta1/resources.proto";
import "google/longrunning/operations.proto";
import "google/protobuf/empty.proto";
import "google/protobuf/field_mask.proto";
option csharp_namespace = "Google.Api.ServiceUsage.V1Beta1";
option go_package = "google.golang.org/genproto/googleapis/api/serviceusage/v1beta1;serviceusage";
option java_multiple_files = true;
option java_outer_classname = "ServiceUsageProto";
option java_package = "com.google.api.serviceusage.v1beta1";
option php_namespace = "Google\\Api\\ServiceUsage\\V1beta1";
option ruby_package = "Google::Api::ServiceUsage::V1beta1";
// [Service Usage API](https://cloud.google.com/service-usage/docs/overview)
service ServiceUsage {
option (google.api.default_host) = "serviceusage.googleapis.com";
option (google.api.oauth_scopes) =
"https://www.googleapis.com/auth/cloud-platform,"
"https://www.googleapis.com/auth/cloud-platform.read-only,"
"https://www.googleapis.com/auth/service.management";
// Enables a service so that it can be used with a project.
//
// Operation response type: `google.protobuf.Empty`
rpc EnableService(EnableServiceRequest)
returns (google.longrunning.Operation) {
option deprecated = true;
option (google.api.http) = {
post: "/v1beta1/{name=*/*/services/*}:enable"
body: "*"
};
option (google.longrunning.operation_info) = {
response_type: "google.protobuf.Empty"
metadata_type: "OperationMetadata"
};
}
// Disables a service so that it can no longer be used with a project.
// This prevents unintended usage that may cause unexpected billing
// charges or security leaks.
//
// It is not valid to call the disable method on a service that is not
// currently enabled. Callers will receive a `FAILED_PRECONDITION` status if
// the target service is not currently enabled.
//
// Operation response type: `google.protobuf.Empty`
rpc DisableService(DisableServiceRequest)
returns (google.longrunning.Operation) {
option deprecated = true;
option (google.api.http) = {
post: "/v1beta1/{name=*/*/services/*}:disable"
body: "*"
};
option (google.longrunning.operation_info) = {
response_type: "google.protobuf.Empty"
metadata_type: "OperationMetadata"
};
}
// Returns the service configuration and enabled state for a given service.
rpc GetService(GetServiceRequest) returns (Service) {
option deprecated = true;
option (google.api.http) = {
get: "/v1beta1/{name=*/*/services/*}"
};
}
// Lists all services available to the specified project, and the current
// state of those services with respect to the project. The list includes
// all public services, all services for which the calling user has the
// `servicemanagement.services.bind` permission, and all services that have
// already been enabled on the project. The list can be filtered to
// only include services in a specific state, for example to only include
// services enabled on the project.
rpc ListServices(ListServicesRequest) returns (ListServicesResponse) {
option deprecated = true;
option (google.api.http) = {
get: "/v1beta1/{parent=*/*}/services"
};
}
// Enables multiple services on a project. The operation is atomic: if
// enabling any service fails, then the entire batch fails, and no state
// changes occur.
//
// Operation response type: `google.protobuf.Empty`
rpc BatchEnableServices(BatchEnableServicesRequest)
returns (google.longrunning.Operation) {
option deprecated = true;
option (google.api.http) = {
post: "/v1beta1/{parent=*/*}/services:batchEnable"
body: "*"
};
option (google.longrunning.operation_info) = {
response_type: "google.protobuf.Empty"
metadata_type: "OperationMetadata"
};
}
// Retrieves a summary of all quota information visible to the service
// consumer, organized by service metric. Each metric includes information
// about all of its defined limits. Each limit includes the limit
// configuration (quota unit, preciseness, default value), the current
// effective limit value, and all of the overrides applied to the limit.
rpc ListConsumerQuotaMetrics(ListConsumerQuotaMetricsRequest)
returns (ListConsumerQuotaMetricsResponse) {
option (google.api.http) = {
get: "/v1beta1/{parent=*/*/services/*}/consumerQuotaMetrics"
};
}
// Retrieves a summary of quota information for a specific quota metric
rpc GetConsumerQuotaMetric(GetConsumerQuotaMetricRequest)
returns (ConsumerQuotaMetric) {
option (google.api.http) = {
get: "/v1beta1/{name=*/*/services/*/consumerQuotaMetrics/*}"
};
}
// Retrieves a summary of quota information for a specific quota limit.
rpc GetConsumerQuotaLimit(GetConsumerQuotaLimitRequest)
returns (ConsumerQuotaLimit) {
option (google.api.http) = {
get: "/v1beta1/{name=*/*/services/*/consumerQuotaMetrics/*/limits/*}"
};
}
// Creates an admin override.
// An admin override is applied by an administrator of a parent folder or
// parent organization of the consumer receiving the override. An admin
// override is intended to limit the amount of quota the consumer can use out
// of the total quota pool allocated to all children of the folder or
// organization.
rpc CreateAdminOverride(CreateAdminOverrideRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1beta1/{parent=*/*/services/*/consumerQuotaMetrics/*/limits/*}/adminOverrides"
body: "override"
};
option (google.longrunning.operation_info) = {
response_type: "QuotaOverride"
metadata_type: "OperationMetadata"
};
}
// Updates an admin override.
rpc UpdateAdminOverride(UpdateAdminOverrideRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
patch: "/v1beta1/{name=*/*/services/*/consumerQuotaMetrics/*/limits/*/adminOverrides/*}"
body: "override"
};
option (google.longrunning.operation_info) = {
response_type: "QuotaOverride"
metadata_type: "OperationMetadata"
};
}
// Deletes an admin override.
rpc DeleteAdminOverride(DeleteAdminOverrideRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
delete: "/v1beta1/{name=*/*/services/*/consumerQuotaMetrics/*/limits/*/adminOverrides/*}"
};
option (google.longrunning.operation_info) = {
response_type: "google.protobuf.Empty"
metadata_type: "OperationMetadata"
};
}
// Lists all admin overrides on this limit.
rpc ListAdminOverrides(ListAdminOverridesRequest)
returns (ListAdminOverridesResponse) {
option (google.api.http) = {
get: "/v1beta1/{parent=*/*/services/*/consumerQuotaMetrics/*/limits/*}/adminOverrides"
};
}
// Creates or updates multiple admin overrides atomically, all on the
// same consumer, but on many different metrics or limits.
// The name field in the quota override message should not be set.
rpc ImportAdminOverrides(ImportAdminOverridesRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1beta1/{parent=*/*/services/*}/consumerQuotaMetrics:importAdminOverrides"
body: "*"
};
option (google.longrunning.operation_info) = {
response_type: "ImportAdminOverridesResponse"
metadata_type: "ImportAdminOverridesMetadata"
};
}
// Creates a consumer override.
// A consumer override is applied to the consumer on its own authority to
// limit its own quota usage. Consumer overrides cannot be used to grant more
// quota than would be allowed by admin overrides, producer overrides, or the
// default limit of the service.
rpc CreateConsumerOverride(CreateConsumerOverrideRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1beta1/{parent=*/*/services/*/consumerQuotaMetrics/*/limits/*}/consumerOverrides"
body: "override"
};
option (google.longrunning.operation_info) = {
response_type: "QuotaOverride"
metadata_type: "OperationMetadata"
};
}
// Updates a consumer override.
rpc UpdateConsumerOverride(UpdateConsumerOverrideRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
patch: "/v1beta1/{name=*/*/services/*/consumerQuotaMetrics/*/limits/*/consumerOverrides/*}"
body: "override"
};
option (google.longrunning.operation_info) = {
response_type: "QuotaOverride"
metadata_type: "OperationMetadata"
};
}
// Deletes a consumer override.
rpc DeleteConsumerOverride(DeleteConsumerOverrideRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
delete: "/v1beta1/{name=*/*/services/*/consumerQuotaMetrics/*/limits/*/consumerOverrides/*}"
};
option (google.longrunning.operation_info) = {
response_type: "google.protobuf.Empty"
metadata_type: "OperationMetadata"
};
}
// Lists all consumer overrides on this limit.
rpc ListConsumerOverrides(ListConsumerOverridesRequest)
returns (ListConsumerOverridesResponse) {
option (google.api.http) = {
get: "/v1beta1/{parent=*/*/services/*/consumerQuotaMetrics/*/limits/*}/consumerOverrides"
};
}
// Creates or updates multiple consumer overrides atomically, all on the
// same consumer, but on many different metrics or limits.
// The name field in the quota override message should not be set.
rpc ImportConsumerOverrides(ImportConsumerOverridesRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1beta1/{parent=*/*/services/*}/consumerQuotaMetrics:importConsumerOverrides"
body: "*"
};
option (google.longrunning.operation_info) = {
response_type: "ImportConsumerOverridesResponse"
metadata_type: "ImportConsumerOverridesMetadata"
};
}
// Generates service identity for service.
rpc GenerateServiceIdentity(GenerateServiceIdentityRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1beta1/{parent=*/*/services/*}:generateServiceIdentity"
};
option (google.longrunning.operation_info) = {
response_type: "ServiceIdentity"
metadata_type: "google.protobuf.Empty"
};
}
}
// Request message for the `EnableService` method.
message EnableServiceRequest {
// Name of the consumer and service to enable the service on.
//
// The `EnableService` and `DisableService` methods currently only support
// projects.
//
// Enabling a service requires that the service is public or is shared with
// the user enabling the service.
//
// An example name would be:
// `projects/123/services/serviceusage.googleapis.com`
// where `123` is the project number (not project ID).
string name = 1;
}
// Request message for the `DisableService` method.
message DisableServiceRequest {
// Name of the consumer and service to disable the service on.
//
// The enable and disable methods currently only support projects.
//
// An example name would be:
// `projects/123/services/serviceusage.googleapis.com`
// where `123` is the project number (not project ID).
string name = 1;
}
// Request message for the `GetService` method.
message GetServiceRequest {
// Name of the consumer and service to get the `ConsumerState` for.
//
// An example name would be:
// `projects/123/services/serviceusage.googleapis.com`
// where `123` is the project number (not project ID).
string name = 1;
}
// Request message for the `ListServices` method.
message ListServicesRequest {
// Parent to search for services on.
//
// An example name would be:
// `projects/123`
// where `123` is the project number (not project ID).
string parent = 1;
// Requested size of the next page of data.
// Requested page size cannot exceed 200.
// If not set, the default page size is 50.
int32 page_size = 2;
// Token identifying which result to start with, which is returned by a
// previous list call.
string page_token = 3;
// Only list services that conform to the given filter.
// The allowed filter strings are `state:ENABLED` and `state:DISABLED`.
string filter = 4;
}
// Response message for the `ListServices` method.
message ListServicesResponse {
// The available services for the requested project.
repeated Service services = 1;
// Token that can be passed to `ListServices` to resume a paginated
// query.
string next_page_token = 2;
}
// Request message for the `BatchEnableServices` method.
message BatchEnableServicesRequest {
// Parent to enable services on.
//
// An example name would be:
// `projects/123`
// where `123` is the project number (not project ID).
//
// The `BatchEnableServices` method currently only supports projects.
string parent = 1;
// The identifiers of the services to enable on the project.
//
// A valid identifier would be:
// serviceusage.googleapis.com
//
// Enabling services requires that each service is public or is shared with
// the user enabling the service.
//
// Two or more services must be specified. To enable a single service,
// use the `EnableService` method instead.
//
// A single request can enable a maximum of 20 services at a time. If more
// than 20 services are specified, the request will fail, and no state changes
// will occur.
repeated string service_ids = 2;
}
// Request message for ListConsumerQuotaMetrics
message ListConsumerQuotaMetricsRequest {
// Parent of the quotas resource.
//
// Some example names would be:
// `projects/123/services/serviceconsumermanagement.googleapis.com`
// `folders/345/services/serviceconsumermanagement.googleapis.com`
// `organizations/456/services/serviceconsumermanagement.googleapis.com`
string parent = 1;
// Requested size of the next page of data.
int32 page_size = 2;
// Token identifying which result to start with; returned by a previous list
// call.
string page_token = 3;
// Specifies the level of detail for quota information in the response.
QuotaView view = 4;
}
// Response message for ListConsumerQuotaMetrics
message ListConsumerQuotaMetricsResponse {
// Quota settings for the consumer, organized by quota metric.
repeated ConsumerQuotaMetric metrics = 1;
// Token identifying which result to start with; returned by a previous list
// call.
string next_page_token = 2;
}
// Request message for GetConsumerQuotaMetric
message GetConsumerQuotaMetricRequest {
// The resource name of the quota limit.
//
// An example name would be:
// `projects/123/services/serviceusage.googleapis.com/quotas/metrics/serviceusage.googleapis.com%2Fmutate_requests`
string name = 1;
// Specifies the level of detail for quota information in the response.
QuotaView view = 2;
}
// Request message for GetConsumerQuotaLimit
message GetConsumerQuotaLimitRequest {
// The resource name of the quota limit.
//
// Use the quota limit resource name returned by previous
// ListConsumerQuotaMetrics and GetConsumerQuotaMetric API calls.
string name = 1;
// Specifies the level of detail for quota information in the response.
QuotaView view = 2;
}
// Request message for CreateAdminOverride.
message CreateAdminOverrideRequest {
// The resource name of the parent quota limit, returned by a
// ListConsumerQuotaMetrics or GetConsumerQuotaMetric call.
//
// An example name would be:
// `projects/123/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion`
string parent = 1;
// The admin override to create.
QuotaOverride override = 2;
// Whether to force the creation of the quota override.
// Setting the force parameter to 'true' ignores all quota safety checks that
// would fail the request. QuotaSafetyCheck lists all such validations.
bool force = 3;
// The list of quota safety checks to ignore before the override mutation.
// Unlike 'force' field that ignores all the quota safety checks, the
// 'force_only' field ignores only the specified checks; other checks are
// still enforced. The 'force' and 'force_only' fields cannot both be set.
repeated QuotaSafetyCheck force_only = 4;
}
// Request message for UpdateAdminOverride.
message UpdateAdminOverrideRequest {
// The resource name of the override to update.
//
// An example name would be:
// `projects/123/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion/adminOverrides/4a3f2c1d`
string name = 1;
// The new override.
// Only the override_value is updated; all other fields are ignored.
QuotaOverride override = 2;
// Whether to force the update of the quota override.
// Setting the force parameter to 'true' ignores all quota safety checks that
// would fail the request. QuotaSafetyCheck lists all such validations.
bool force = 3;
// Update only the specified fields of the override.
// If unset, all fields will be updated.
google.protobuf.FieldMask update_mask = 4;
// The list of quota safety checks to ignore before the override mutation.
// Unlike 'force' field that ignores all the quota safety checks, the
// 'force_only' field ignores only the specified checks; other checks are
// still enforced. The 'force' and 'force_only' fields cannot both be set.
repeated QuotaSafetyCheck force_only = 5;
}
// Request message for DeleteAdminOverride.
message DeleteAdminOverrideRequest {
// The resource name of the override to delete.
//
// An example name would be:
// `projects/123/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion/adminOverrides/4a3f2c1d`
string name = 1;
// Whether to force the deletion of the quota override.
// Setting the force parameter to 'true' ignores all quota safety checks that
// would fail the request. QuotaSafetyCheck lists all such validations.
bool force = 2;
// The list of quota safety checks to ignore before the override mutation.
// Unlike 'force' field that ignores all the quota safety checks, the
// 'force_only' field ignores only the specified checks; other checks are
// still enforced. The 'force' and 'force_only' fields cannot both be set.
repeated QuotaSafetyCheck force_only = 3;
}
// Request message for ListAdminOverrides
message ListAdminOverridesRequest {
// The resource name of the parent quota limit, returned by a
// ListConsumerQuotaMetrics or GetConsumerQuotaMetric call.
//
// An example name would be:
// `projects/123/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion`
string parent = 1;
// Requested size of the next page of data.
int32 page_size = 2;
// Token identifying which result to start with; returned by a previous list
// call.
string page_token = 3;
}
// Response message for ListAdminOverrides.
message ListAdminOverridesResponse {
// Admin overrides on this limit.
repeated QuotaOverride overrides = 1;
// Token identifying which result to start with; returned by a previous list
// call.
string next_page_token = 2;
}
// Response message for BatchCreateAdminOverrides
message BatchCreateAdminOverridesResponse {
// The overrides that were created.
repeated QuotaOverride overrides = 1;
}
// Request message for ImportAdminOverrides
message ImportAdminOverridesRequest {
// The resource name of the consumer.
//
// An example name would be:
// `projects/123/services/compute.googleapis.com`
string parent = 1;
// Source of import data
oneof source {
// The import data is specified in the request message itself
OverrideInlineSource inline_source = 2;
}
// Whether to force the creation of the quota overrides.
// Setting the force parameter to 'true' ignores all quota safety checks that
// would fail the request. QuotaSafetyCheck lists all such validations.
bool force = 3;
// The list of quota safety checks to ignore before the override mutation.
// Unlike 'force' field that ignores all the quota safety checks, the
// 'force_only' field ignores only the specified checks; other checks are
// still enforced. The 'force' and 'force_only' fields cannot both be set.
repeated QuotaSafetyCheck force_only = 4;
}
// Response message for ImportAdminOverrides
message ImportAdminOverridesResponse {
// The overrides that were created from the imported data.
repeated QuotaOverride overrides = 1;
}
// Metadata message that provides information such as progress,
// partial failures, and similar information on each GetOperation call
// of LRO returned by ImportAdminOverrides.
message ImportAdminOverridesMetadata {}
// Request message for CreateConsumerOverride.
message CreateConsumerOverrideRequest {
// The resource name of the parent quota limit, returned by a
// ListConsumerQuotaMetrics or GetConsumerQuotaMetric call.
//
// An example name would be:
// `projects/123/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion`
string parent = 1;
// The override to create.
QuotaOverride override = 2;
// Whether to force the creation of the quota override.
// Setting the force parameter to 'true' ignores all quota safety checks that
// would fail the request. QuotaSafetyCheck lists all such validations.
bool force = 3;
// The list of quota safety checks to ignore before the override mutation.
// Unlike 'force' field that ignores all the quota safety checks, the
// 'force_only' field ignores only the specified checks; other checks are
// still enforced. The 'force' and 'force_only' fields cannot both be set.
repeated QuotaSafetyCheck force_only = 4;
}
// Request message for UpdateConsumerOverride.
message UpdateConsumerOverrideRequest {
// The resource name of the override to update.
//
// An example name would be:
// `projects/123/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion/consumerOverrides/4a3f2c1d`
string name = 1;
// The new override.
// Only the override_value is updated; all other fields are ignored.
QuotaOverride override = 2;
// Whether to force the update of the quota override.
// Setting the force parameter to 'true' ignores all quota safety checks that
// would fail the request. QuotaSafetyCheck lists all such validations.
bool force = 3;
// Update only the specified fields of the override.
// If unset, all fields will be updated.
google.protobuf.FieldMask update_mask = 4;
// The list of quota safety checks to ignore before the override mutation.
// Unlike 'force' field that ignores all the quota safety checks, the
// 'force_only' field ignores only the specified checks; other checks are
// still enforced. The 'force' and 'force_only' fields cannot both be set.
repeated QuotaSafetyCheck force_only = 5;
}
// Request message for DeleteConsumerOverride.
message DeleteConsumerOverrideRequest {
// The resource name of the override to delete.
//
// An example name would be:
// `projects/123/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion/consumerOverrides/4a3f2c1d`
string name = 1;
// Whether to force the deletion of the quota override.
// Setting the force parameter to 'true' ignores all quota safety checks that
// would fail the request. QuotaSafetyCheck lists all such validations.
bool force = 2;
// The list of quota safety checks to ignore before the override mutation.
// Unlike 'force' field that ignores all the quota safety checks, the
// 'force_only' field ignores only the specified checks; other checks are
// still enforced. The 'force' and 'force_only' fields cannot both be set.
repeated QuotaSafetyCheck force_only = 3;
}
// Request message for ListConsumerOverrides
message ListConsumerOverridesRequest {
// The resource name of the parent quota limit, returned by a
// ListConsumerQuotaMetrics or GetConsumerQuotaMetric call.
//
// An example name would be:
// `projects/123/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion`
string parent = 1;
// Requested size of the next page of data.
int32 page_size = 2;
// Token identifying which result to start with; returned by a previous list
// call.
string page_token = 3;
}
// Response message for ListConsumerOverrides.
message ListConsumerOverridesResponse {
// Consumer overrides on this limit.
repeated QuotaOverride overrides = 1;
// Token identifying which result to start with; returned by a previous list
// call.
string next_page_token = 2;
}
// Response message for BatchCreateConsumerOverrides
message BatchCreateConsumerOverridesResponse {
// The overrides that were created.
repeated QuotaOverride overrides = 1;
}
// Request message for ImportConsumerOverrides
message ImportConsumerOverridesRequest {
// The resource name of the consumer.
//
// An example name would be:
// `projects/123/services/compute.googleapis.com`
string parent = 1;
// Source of import data
oneof source {
// The import data is specified in the request message itself
OverrideInlineSource inline_source = 2;
}
// Whether to force the creation of the quota overrides.
// Setting the force parameter to 'true' ignores all quota safety checks that
// would fail the request. QuotaSafetyCheck lists all such validations.
bool force = 3;
// The list of quota safety checks to ignore before the override mutation.
// Unlike 'force' field that ignores all the quota safety checks, the
// 'force_only' field ignores only the specified checks; other checks are
// still enforced. The 'force' and 'force_only' fields cannot both be set.
repeated QuotaSafetyCheck force_only = 4;
}
// Response message for ImportConsumerOverrides
message ImportConsumerOverridesResponse {
// The overrides that were created from the imported data.
repeated QuotaOverride overrides = 1;
}
// Metadata message that provides information such as progress,
// partial failures, and similar information on each GetOperation call
// of LRO returned by ImportConsumerOverrides.
message ImportConsumerOverridesMetadata {}
// Response message for ImportAdminQuotaPolicies
message ImportAdminQuotaPoliciesResponse {
// The policies that were created from the imported data.
repeated AdminQuotaPolicy policies = 1;
}
// Metadata message that provides information such as progress,
// partial failures, and similar information on each GetOperation call
// of LRO returned by ImportAdminQuotaPolicies.
message ImportAdminQuotaPoliciesMetadata {}
// Metadata message that provides information such as progress,
// partial failures, and similar information on each GetOperation call
// of LRO returned by CreateAdminQuotaPolicy.
message CreateAdminQuotaPolicyMetadata {}
// Metadata message that provides information such as progress,
// partial failures, and similar information on each GetOperation call
// of LRO returned by UpdateAdminQuotaPolicy.
message UpdateAdminQuotaPolicyMetadata {}
// Metadata message that provides information such as progress,
// partial failures, and similar information on each GetOperation call
// of LRO returned by DeleteAdminQuotaPolicy.
message DeleteAdminQuotaPolicyMetadata {}
// Request message for generating service identity.
message GenerateServiceIdentityRequest {
// Name of the consumer and service to generate an identity for.
//
// The `GenerateServiceIdentity` methods currently support projects, folders,
// organizations.
//
// Example parents would be:
// `projects/123/services/example.googleapis.com`
// `folders/123/services/example.googleapis.com`
// `organizations/123/services/example.googleapis.com`
string parent = 1;
}
// Response message for getting service identity.
message GetServiceIdentityResponse {
// Enum for service identity state.
enum IdentityState {
// Default service identity state. This value is used if the state is
// omitted.
IDENTITY_STATE_UNSPECIFIED = 0;
// Service identity has been created and can be used.
ACTIVE = 1;
}
// Service identity that service producer can use to access consumer
// resources. If exists is true, it contains email and unique_id. If exists is
// false, it contains pre-constructed email and empty unique_id.
ServiceIdentity identity = 1;
// Service identity state.
IdentityState state = 2;
}
// Metadata for the `GetServiceIdentity` method.
message GetServiceIdentityMetadata {}