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