1// Copyright 2021 Google LLC. 2// Use of this source code is governed by a BSD-style 3// license that can be found in the LICENSE file. 4 5// Code generated file. DO NOT EDIT. 6 7// Package serviceconsumermanagement provides access to the Service Consumer Management API. 8// 9// For product documentation, see: https://cloud.google.com/service-consumer-management/docs/overview 10// 11// Creating a client 12// 13// Usage example: 14// 15// import "google.golang.org/api/serviceconsumermanagement/v1beta1" 16// ... 17// ctx := context.Background() 18// serviceconsumermanagementService, err := serviceconsumermanagement.NewService(ctx) 19// 20// In this example, Google Application Default Credentials are used for authentication. 21// 22// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials. 23// 24// Other authentication options 25// 26// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey: 27// 28// serviceconsumermanagementService, err := serviceconsumermanagement.NewService(ctx, option.WithAPIKey("AIza...")) 29// 30// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource: 31// 32// config := &oauth2.Config{...} 33// // ... 34// token, err := config.Exchange(ctx, ...) 35// serviceconsumermanagementService, err := serviceconsumermanagement.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token))) 36// 37// See https://godoc.org/google.golang.org/api/option/ for details on options. 38package serviceconsumermanagement // import "google.golang.org/api/serviceconsumermanagement/v1beta1" 39 40import ( 41 "bytes" 42 "context" 43 "encoding/json" 44 "errors" 45 "fmt" 46 "io" 47 "net/http" 48 "net/url" 49 "strconv" 50 "strings" 51 52 googleapi "google.golang.org/api/googleapi" 53 gensupport "google.golang.org/api/internal/gensupport" 54 option "google.golang.org/api/option" 55 internaloption "google.golang.org/api/option/internaloption" 56 htransport "google.golang.org/api/transport/http" 57) 58 59// Always reference these packages, just in case the auto-generated code 60// below doesn't. 61var _ = bytes.NewBuffer 62var _ = strconv.Itoa 63var _ = fmt.Sprintf 64var _ = json.NewDecoder 65var _ = io.Copy 66var _ = url.Parse 67var _ = gensupport.MarshalJSON 68var _ = googleapi.Version 69var _ = errors.New 70var _ = strings.Replace 71var _ = context.Canceled 72var _ = internaloption.WithDefaultEndpoint 73 74const apiId = "serviceconsumermanagement:v1beta1" 75const apiName = "serviceconsumermanagement" 76const apiVersion = "v1beta1" 77const basePath = "https://serviceconsumermanagement.googleapis.com/" 78const mtlsBasePath = "https://serviceconsumermanagement.mtls.googleapis.com/" 79 80// OAuth2 scopes used by this API. 81const ( 82 // See, edit, configure, and delete your Google Cloud Platform data 83 CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform" 84) 85 86// NewService creates a new APIService. 87func NewService(ctx context.Context, opts ...option.ClientOption) (*APIService, error) { 88 scopesOption := option.WithScopes( 89 "https://www.googleapis.com/auth/cloud-platform", 90 ) 91 // NOTE: prepend, so we don't override user-specified scopes. 92 opts = append([]option.ClientOption{scopesOption}, opts...) 93 opts = append(opts, internaloption.WithDefaultEndpoint(basePath)) 94 opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath)) 95 client, endpoint, err := htransport.NewClient(ctx, opts...) 96 if err != nil { 97 return nil, err 98 } 99 s, err := New(client) 100 if err != nil { 101 return nil, err 102 } 103 if endpoint != "" { 104 s.BasePath = endpoint 105 } 106 return s, nil 107} 108 109// New creates a new APIService. It uses the provided http.Client for requests. 110// 111// Deprecated: please use NewService instead. 112// To provide a custom HTTP client, use option.WithHTTPClient. 113// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead. 114func New(client *http.Client) (*APIService, error) { 115 if client == nil { 116 return nil, errors.New("client is nil") 117 } 118 s := &APIService{client: client, BasePath: basePath} 119 s.Operations = NewOperationsService(s) 120 s.Services = NewServicesService(s) 121 return s, nil 122} 123 124type APIService struct { 125 client *http.Client 126 BasePath string // API endpoint base URL 127 UserAgent string // optional additional User-Agent fragment 128 129 Operations *OperationsService 130 131 Services *ServicesService 132} 133 134func (s *APIService) userAgent() string { 135 if s.UserAgent == "" { 136 return googleapi.UserAgent 137 } 138 return googleapi.UserAgent + " " + s.UserAgent 139} 140 141func NewOperationsService(s *APIService) *OperationsService { 142 rs := &OperationsService{s: s} 143 return rs 144} 145 146type OperationsService struct { 147 s *APIService 148} 149 150func NewServicesService(s *APIService) *ServicesService { 151 rs := &ServicesService{s: s} 152 rs.ConsumerQuotaMetrics = NewServicesConsumerQuotaMetricsService(s) 153 return rs 154} 155 156type ServicesService struct { 157 s *APIService 158 159 ConsumerQuotaMetrics *ServicesConsumerQuotaMetricsService 160} 161 162func NewServicesConsumerQuotaMetricsService(s *APIService) *ServicesConsumerQuotaMetricsService { 163 rs := &ServicesConsumerQuotaMetricsService{s: s} 164 rs.Limits = NewServicesConsumerQuotaMetricsLimitsService(s) 165 return rs 166} 167 168type ServicesConsumerQuotaMetricsService struct { 169 s *APIService 170 171 Limits *ServicesConsumerQuotaMetricsLimitsService 172} 173 174func NewServicesConsumerQuotaMetricsLimitsService(s *APIService) *ServicesConsumerQuotaMetricsLimitsService { 175 rs := &ServicesConsumerQuotaMetricsLimitsService{s: s} 176 rs.ProducerOverrides = NewServicesConsumerQuotaMetricsLimitsProducerOverridesService(s) 177 return rs 178} 179 180type ServicesConsumerQuotaMetricsLimitsService struct { 181 s *APIService 182 183 ProducerOverrides *ServicesConsumerQuotaMetricsLimitsProducerOverridesService 184} 185 186func NewServicesConsumerQuotaMetricsLimitsProducerOverridesService(s *APIService) *ServicesConsumerQuotaMetricsLimitsProducerOverridesService { 187 rs := &ServicesConsumerQuotaMetricsLimitsProducerOverridesService{s: s} 188 return rs 189} 190 191type ServicesConsumerQuotaMetricsLimitsProducerOverridesService struct { 192 s *APIService 193} 194 195// Api: Api is a light-weight descriptor for an API Interface. 196// Interfaces are also described as "protocol buffer services" in some 197// contexts, such as by the "service" keyword in a .proto file, but they 198// are different from API Services, which represent a concrete 199// implementation of an interface as opposed to simply a description of 200// methods and bindings. They are also sometimes simply referred to as 201// "APIs" in other contexts, such as the name of this message itself. 202// See https://cloud.google.com/apis/design/glossary for detailed 203// terminology. 204type Api struct { 205 // Methods: The methods of this interface, in unspecified order. 206 Methods []*Method `json:"methods,omitempty"` 207 208 // Mixins: Included interfaces. See Mixin. 209 Mixins []*Mixin `json:"mixins,omitempty"` 210 211 // Name: The fully qualified name of this interface, including package 212 // name followed by the interface's simple name. 213 Name string `json:"name,omitempty"` 214 215 // Options: Any metadata attached to the interface. 216 Options []*Option `json:"options,omitempty"` 217 218 // SourceContext: Source context for the protocol buffer service 219 // represented by this message. 220 SourceContext *SourceContext `json:"sourceContext,omitempty"` 221 222 // Syntax: The source syntax of the service. 223 // 224 // Possible values: 225 // "SYNTAX_PROTO2" - Syntax `proto2`. 226 // "SYNTAX_PROTO3" - Syntax `proto3`. 227 Syntax string `json:"syntax,omitempty"` 228 229 // Version: A version string for this interface. If specified, must have 230 // the form `major-version.minor-version`, as in `1.10`. If the minor 231 // version is omitted, it defaults to zero. If the entire version field 232 // is empty, the major version is derived from the package name, as 233 // outlined below. If the field is not empty, the version in the package 234 // name will be verified to be consistent with what is provided here. 235 // The versioning schema uses semantic versioning (http://semver.org) 236 // where the major version number indicates a breaking change and the 237 // minor version an additive, non-breaking change. Both version numbers 238 // are signals to users what to expect from different versions, and 239 // should be carefully chosen based on the product plan. The major 240 // version is also reflected in the package name of the interface, which 241 // must end in `v`, as in `google.feature.v1`. For major versions 0 and 242 // 1, the suffix can be omitted. Zero major versions must only be used 243 // for experimental, non-GA interfaces. 244 Version string `json:"version,omitempty"` 245 246 // ForceSendFields is a list of field names (e.g. "Methods") to 247 // unconditionally include in API requests. By default, fields with 248 // empty values are omitted from API requests. However, any non-pointer, 249 // non-interface field appearing in ForceSendFields will be sent to the 250 // server regardless of whether the field is empty or not. This may be 251 // used to include empty fields in Patch requests. 252 ForceSendFields []string `json:"-"` 253 254 // NullFields is a list of field names (e.g. "Methods") to include in 255 // API requests with the JSON null value. By default, fields with empty 256 // values are omitted from API requests. However, any field with an 257 // empty value appearing in NullFields will be sent to the server as 258 // null. It is an error if a field in this list has a non-empty value. 259 // This may be used to include null fields in Patch requests. 260 NullFields []string `json:"-"` 261} 262 263func (s *Api) MarshalJSON() ([]byte, error) { 264 type NoMethod Api 265 raw := NoMethod(*s) 266 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 267} 268 269// AuthProvider: Configuration for an authentication provider, including 270// support for JSON Web Token (JWT) 271// (https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32). 272type AuthProvider struct { 273 // Audiences: The list of JWT audiences 274 // (https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3). 275 // that are allowed to access. A JWT containing any of these audiences 276 // will be accepted. When this setting is absent, JWTs with audiences: - 277 // "https://[service.name]/[google.protobuf.Api.name]" - 278 // "https://[service.name]/" will be accepted. For example, if no 279 // audiences are in the setting, LibraryService API will accept JWTs 280 // with the following audiences: - 281 // https://library-example.googleapis.com/google.example.library.v1.LibraryService 282 // - https://library-example.googleapis.com/ Example: audiences: 283 // bookstore_android.apps.googleusercontent.com, 284 // bookstore_web.apps.googleusercontent.com 285 Audiences string `json:"audiences,omitempty"` 286 287 // AuthorizationUrl: Redirect URL if JWT token is required but not 288 // present or is expired. Implement authorizationUrl of 289 // securityDefinitions in OpenAPI spec. 290 AuthorizationUrl string `json:"authorizationUrl,omitempty"` 291 292 // Id: The unique identifier of the auth provider. It will be referred 293 // to by `AuthRequirement.provider_id`. Example: "bookstore_auth". 294 Id string `json:"id,omitempty"` 295 296 // Issuer: Identifies the principal that issued the JWT. See 297 // https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.1 298 // Usually a URL or an email address. Example: 299 // https://securetoken.google.com Example: 300 // 1234567-compute@developer.gserviceaccount.com 301 Issuer string `json:"issuer,omitempty"` 302 303 // JwksUri: URL of the provider's public key set to validate signature 304 // of the JWT. See OpenID Discovery 305 // (https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata). 306 // Optional if the key set document: - can be retrieved from OpenID 307 // Discovery 308 // (https://openid.net/specs/openid-connect-discovery-1_0.html) of the 309 // issuer. - can be inferred from the email domain of the issuer (e.g. a 310 // Google service account). Example: 311 // https://www.googleapis.com/oauth2/v1/certs 312 JwksUri string `json:"jwksUri,omitempty"` 313 314 // JwtLocations: Defines the locations to extract the JWT. JWT locations 315 // can be either from HTTP headers or URL query parameters. The rule is 316 // that the first match wins. The checking order is: checking all 317 // headers first, then URL query parameters. If not specified, default 318 // to use following 3 locations: 1) Authorization: Bearer 2) 319 // x-goog-iap-jwt-assertion 3) access_token query parameter Default 320 // locations can be specified as followings: jwt_locations: - header: 321 // Authorization value_prefix: "Bearer " - header: 322 // x-goog-iap-jwt-assertion - query: access_token 323 JwtLocations []*JwtLocation `json:"jwtLocations,omitempty"` 324 325 // ForceSendFields is a list of field names (e.g. "Audiences") to 326 // unconditionally include in API requests. By default, fields with 327 // empty values are omitted from API requests. However, any non-pointer, 328 // non-interface field appearing in ForceSendFields will be sent to the 329 // server regardless of whether the field is empty or not. This may be 330 // used to include empty fields in Patch requests. 331 ForceSendFields []string `json:"-"` 332 333 // NullFields is a list of field names (e.g. "Audiences") to include in 334 // API requests with the JSON null value. By default, fields with empty 335 // values are omitted from API requests. However, any field with an 336 // empty value appearing in NullFields will be sent to the server as 337 // null. It is an error if a field in this list has a non-empty value. 338 // This may be used to include null fields in Patch requests. 339 NullFields []string `json:"-"` 340} 341 342func (s *AuthProvider) MarshalJSON() ([]byte, error) { 343 type NoMethod AuthProvider 344 raw := NoMethod(*s) 345 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 346} 347 348// AuthRequirement: User-defined authentication requirements, including 349// support for JSON Web Token (JWT) 350// (https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32). 351type AuthRequirement struct { 352 // Audiences: NOTE: This will be deprecated soon, once 353 // AuthProvider.audiences is implemented and accepted in all the runtime 354 // components. The list of JWT audiences 355 // (https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3). 356 // that are allowed to access. A JWT containing any of these audiences 357 // will be accepted. When this setting is absent, only JWTs with 358 // audience "https://Service_name/API_name" will be accepted. For 359 // example, if no audiences are in the setting, LibraryService API will 360 // only accept JWTs with the following audience 361 // "https://library-example.googleapis.com/google.example.library.v1.Libr 362 // aryService". Example: audiences: 363 // bookstore_android.apps.googleusercontent.com, 364 // bookstore_web.apps.googleusercontent.com 365 Audiences string `json:"audiences,omitempty"` 366 367 // ProviderId: id from authentication provider. Example: provider_id: 368 // bookstore_auth 369 ProviderId string `json:"providerId,omitempty"` 370 371 // ForceSendFields is a list of field names (e.g. "Audiences") to 372 // unconditionally include in API requests. By default, fields with 373 // empty values are omitted from API requests. However, any non-pointer, 374 // non-interface field appearing in ForceSendFields will be sent to the 375 // server regardless of whether the field is empty or not. This may be 376 // used to include empty fields in Patch requests. 377 ForceSendFields []string `json:"-"` 378 379 // NullFields is a list of field names (e.g. "Audiences") to include in 380 // API requests with the JSON null value. By default, fields with empty 381 // values are omitted from API requests. However, any field with an 382 // empty value appearing in NullFields will be sent to the server as 383 // null. It is an error if a field in this list has a non-empty value. 384 // This may be used to include null fields in Patch requests. 385 NullFields []string `json:"-"` 386} 387 388func (s *AuthRequirement) MarshalJSON() ([]byte, error) { 389 type NoMethod AuthRequirement 390 raw := NoMethod(*s) 391 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 392} 393 394// Authentication: `Authentication` defines the authentication 395// configuration for API methods provided by an API service. Example: 396// name: calendar.googleapis.com authentication: providers: - id: 397// google_calendar_auth jwks_uri: 398// https://www.googleapis.com/oauth2/v1/certs issuer: 399// https://securetoken.google.com rules: - selector: "*" requirements: 400// provider_id: google_calendar_auth - selector: 401// google.calendar.Delegate oauth: canonical_scopes: 402// https://www.googleapis.com/auth/calendar.read 403type Authentication struct { 404 // Providers: Defines a set of authentication providers that a service 405 // supports. 406 Providers []*AuthProvider `json:"providers,omitempty"` 407 408 // Rules: A list of authentication rules that apply to individual API 409 // methods. **NOTE:** All service configuration rules follow "last one 410 // wins" order. 411 Rules []*AuthenticationRule `json:"rules,omitempty"` 412 413 // ForceSendFields is a list of field names (e.g. "Providers") to 414 // unconditionally include in API requests. By default, fields with 415 // empty values are omitted from API requests. However, any non-pointer, 416 // non-interface field appearing in ForceSendFields will be sent to the 417 // server regardless of whether the field is empty or not. This may be 418 // used to include empty fields in Patch requests. 419 ForceSendFields []string `json:"-"` 420 421 // NullFields is a list of field names (e.g. "Providers") to include in 422 // API requests with the JSON null value. By default, fields with empty 423 // values are omitted from API requests. However, any field with an 424 // empty value appearing in NullFields will be sent to the server as 425 // null. It is an error if a field in this list has a non-empty value. 426 // This may be used to include null fields in Patch requests. 427 NullFields []string `json:"-"` 428} 429 430func (s *Authentication) MarshalJSON() ([]byte, error) { 431 type NoMethod Authentication 432 raw := NoMethod(*s) 433 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 434} 435 436// AuthenticationRule: Authentication rules for the service. By default, 437// if a method has any authentication requirements, every request must 438// include a valid credential matching one of the requirements. It's an 439// error to include more than one kind of credential in a single 440// request. If a method doesn't have any auth requirements, request 441// credentials will be ignored. 442type AuthenticationRule struct { 443 // AllowWithoutCredential: If true, the service accepts API keys without 444 // any other credential. This flag only applies to HTTP and gRPC 445 // requests. 446 AllowWithoutCredential bool `json:"allowWithoutCredential,omitempty"` 447 448 // Oauth: The requirements for OAuth credentials. 449 Oauth *OAuthRequirements `json:"oauth,omitempty"` 450 451 // Requirements: Requirements for additional authentication providers. 452 Requirements []*AuthRequirement `json:"requirements,omitempty"` 453 454 // Selector: Selects the methods to which this rule applies. Refer to 455 // selector for syntax details. 456 Selector string `json:"selector,omitempty"` 457 458 // ForceSendFields is a list of field names (e.g. 459 // "AllowWithoutCredential") to unconditionally include in API requests. 460 // By default, fields with empty values are omitted from API requests. 461 // However, any non-pointer, non-interface field appearing in 462 // ForceSendFields will be sent to the server regardless of whether the 463 // field is empty or not. This may be used to include empty fields in 464 // Patch requests. 465 ForceSendFields []string `json:"-"` 466 467 // NullFields is a list of field names (e.g. "AllowWithoutCredential") 468 // to include in API requests with the JSON null value. By default, 469 // fields with empty values are omitted from API requests. However, any 470 // field with an empty value appearing in NullFields will be sent to the 471 // server as null. It is an error if a field in this list has a 472 // non-empty value. This may be used to include null fields in Patch 473 // requests. 474 NullFields []string `json:"-"` 475} 476 477func (s *AuthenticationRule) MarshalJSON() ([]byte, error) { 478 type NoMethod AuthenticationRule 479 raw := NoMethod(*s) 480 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 481} 482 483// Backend: `Backend` defines the backend configuration for a service. 484type Backend struct { 485 // Rules: A list of API backend rules that apply to individual API 486 // methods. **NOTE:** All service configuration rules follow "last one 487 // wins" order. 488 Rules []*BackendRule `json:"rules,omitempty"` 489 490 // ForceSendFields is a list of field names (e.g. "Rules") to 491 // unconditionally include in API requests. By default, fields with 492 // empty values are omitted from API requests. However, any non-pointer, 493 // non-interface field appearing in ForceSendFields will be sent to the 494 // server regardless of whether the field is empty or not. This may be 495 // used to include empty fields in Patch requests. 496 ForceSendFields []string `json:"-"` 497 498 // NullFields is a list of field names (e.g. "Rules") to include in API 499 // requests with the JSON null value. By default, fields with empty 500 // values are omitted from API requests. However, any field with an 501 // empty value appearing in NullFields will be sent to the server as 502 // null. It is an error if a field in this list has a non-empty value. 503 // This may be used to include null fields in Patch requests. 504 NullFields []string `json:"-"` 505} 506 507func (s *Backend) MarshalJSON() ([]byte, error) { 508 type NoMethod Backend 509 raw := NoMethod(*s) 510 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 511} 512 513// BackendRule: A backend rule provides configuration for an individual 514// API element. 515type BackendRule struct { 516 // Address: The address of the API backend. The scheme is used to 517 // determine the backend protocol and security. The following schemes 518 // are accepted: SCHEME PROTOCOL SECURITY http:// HTTP None https:// 519 // HTTP TLS grpc:// gRPC None grpcs:// gRPC TLS It is recommended to 520 // explicitly include a scheme. Leaving out the scheme may cause 521 // constrasting behaviors across platforms. If the port is unspecified, 522 // the default is: - 80 for schemes without TLS - 443 for schemes with 523 // TLS For HTTP backends, use protocol to specify the protocol version. 524 Address string `json:"address,omitempty"` 525 526 // Deadline: The number of seconds to wait for a response from a 527 // request. The default varies based on the request protocol and 528 // deployment environment. 529 Deadline float64 `json:"deadline,omitempty"` 530 531 // DisableAuth: When disable_auth is true, a JWT ID token won't be 532 // generated and the original "Authorization" HTTP header will be 533 // preserved. If the header is used to carry the original token and is 534 // expected by the backend, this field must be set to true to preserve 535 // the header. 536 DisableAuth bool `json:"disableAuth,omitempty"` 537 538 // JwtAudience: The JWT audience is used when generating a JWT ID token 539 // for the backend. This ID token will be added in the HTTP 540 // "authorization" header, and sent to the backend. 541 JwtAudience string `json:"jwtAudience,omitempty"` 542 543 // OperationDeadline: The number of seconds to wait for the completion 544 // of a long running operation. The default is no deadline. 545 OperationDeadline float64 `json:"operationDeadline,omitempty"` 546 547 // Possible values: 548 // "PATH_TRANSLATION_UNSPECIFIED" 549 // "CONSTANT_ADDRESS" - Use the backend address as-is, with no 550 // modification to the path. If the URL pattern contains variables, the 551 // variable names and values will be appended to the query string. If a 552 // query string parameter and a URL pattern variable have the same name, 553 // this may result in duplicate keys in the query string. # Examples 554 // Given the following operation config: Method path: 555 // /api/company/{cid}/user/{uid} Backend address: 556 // https://example.cloudfunctions.net/getUser Requests to the following 557 // request paths will call the backend at the translated path: Request 558 // path: /api/company/widgetworks/user/johndoe Translated: 559 // https://example.cloudfunctions.net/getUser?cid=widgetworks&uid=johndoe 560 // Request path: /api/company/widgetworks/user/johndoe?timezone=EST 561 // Translated: 562 // https://example.cloudfunctions.net/getUser?timezone=EST&cid=widgetworks&uid=johndoe 563 // "APPEND_PATH_TO_ADDRESS" - The request path will be appended to the 564 // backend address. # Examples Given the following operation config: 565 // Method path: /api/company/{cid}/user/{uid} Backend address: 566 // https://example.appspot.com Requests to the following request paths 567 // will call the backend at the translated path: Request path: 568 // /api/company/widgetworks/user/johndoe Translated: 569 // https://example.appspot.com/api/company/widgetworks/user/johndoe 570 // Request path: /api/company/widgetworks/user/johndoe?timezone=EST 571 // Translated: 572 // https://example.appspot.com/api/company/widgetworks/user/johndoe?timezone=EST 573 PathTranslation string `json:"pathTranslation,omitempty"` 574 575 // Protocol: The protocol used for sending a request to the backend. The 576 // supported values are "http/1.1" and "h2". The default value is 577 // inferred from the scheme in the address field: SCHEME PROTOCOL 578 // http:// http/1.1 https:// http/1.1 grpc:// h2 grpcs:// h2 For secure 579 // HTTP backends (https://) that support HTTP/2, set this field to "h2" 580 // for improved performance. Configuring this field to non-default 581 // values is only supported for secure HTTP backends. This field will be 582 // ignored for all other backends. See 583 // https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids 584 // for more details on the supported values. 585 Protocol string `json:"protocol,omitempty"` 586 587 // Selector: Selects the methods to which this rule applies. Refer to 588 // selector for syntax details. 589 Selector string `json:"selector,omitempty"` 590 591 // ForceSendFields is a list of field names (e.g. "Address") to 592 // unconditionally include in API requests. By default, fields with 593 // empty values are omitted from API requests. However, any non-pointer, 594 // non-interface field appearing in ForceSendFields will be sent to the 595 // server regardless of whether the field is empty or not. This may be 596 // used to include empty fields in Patch requests. 597 ForceSendFields []string `json:"-"` 598 599 // NullFields is a list of field names (e.g. "Address") to include in 600 // API requests with the JSON null value. By default, fields with empty 601 // values are omitted from API requests. However, any field with an 602 // empty value appearing in NullFields will be sent to the server as 603 // null. It is an error if a field in this list has a non-empty value. 604 // This may be used to include null fields in Patch requests. 605 NullFields []string `json:"-"` 606} 607 608func (s *BackendRule) MarshalJSON() ([]byte, error) { 609 type NoMethod BackendRule 610 raw := NoMethod(*s) 611 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 612} 613 614func (s *BackendRule) UnmarshalJSON(data []byte) error { 615 type NoMethod BackendRule 616 var s1 struct { 617 Deadline gensupport.JSONFloat64 `json:"deadline"` 618 OperationDeadline gensupport.JSONFloat64 `json:"operationDeadline"` 619 *NoMethod 620 } 621 s1.NoMethod = (*NoMethod)(s) 622 if err := json.Unmarshal(data, &s1); err != nil { 623 return err 624 } 625 s.Deadline = float64(s1.Deadline) 626 s.OperationDeadline = float64(s1.OperationDeadline) 627 return nil 628} 629 630// Billing: Billing related configuration of the service. The following 631// example shows how to configure monitored resources and metrics for 632// billing, `consumer_destinations` is the only supported destination 633// and the monitored resources need at least one label key 634// `cloud.googleapis.com/location` to indicate the location of the 635// billing usage, using different monitored resources between monitoring 636// and billing is recommended so they can be evolved independently: 637// monitored_resources: - type: library.googleapis.com/billing_branch 638// labels: - key: cloud.googleapis.com/location description: | 639// Predefined label to support billing location restriction. - key: city 640// description: | Custom label to define the city where the library 641// branch is located in. - key: name description: Custom label to define 642// the name of the library branch. metrics: - name: 643// library.googleapis.com/book/borrowed_count metric_kind: DELTA 644// value_type: INT64 unit: "1" billing: consumer_destinations: - 645// monitored_resource: library.googleapis.com/billing_branch metrics: - 646// library.googleapis.com/book/borrowed_count 647type Billing struct { 648 // ConsumerDestinations: Billing configurations for sending metrics to 649 // the consumer project. There can be multiple consumer destinations per 650 // service, each one must have a different monitored resource type. A 651 // metric can be used in at most one consumer destination. 652 ConsumerDestinations []*BillingDestination `json:"consumerDestinations,omitempty"` 653 654 // ForceSendFields is a list of field names (e.g. 655 // "ConsumerDestinations") to unconditionally include in API requests. 656 // By default, fields with empty values are omitted from API requests. 657 // However, any non-pointer, non-interface field appearing in 658 // ForceSendFields will be sent to the server regardless of whether the 659 // field is empty or not. This may be used to include empty fields in 660 // Patch requests. 661 ForceSendFields []string `json:"-"` 662 663 // NullFields is a list of field names (e.g. "ConsumerDestinations") to 664 // include in API requests with the JSON null value. By default, fields 665 // with empty values are omitted from API requests. However, any field 666 // with an empty value appearing in NullFields will be sent to the 667 // server as null. It is an error if a field in this list has a 668 // non-empty value. This may be used to include null fields in Patch 669 // requests. 670 NullFields []string `json:"-"` 671} 672 673func (s *Billing) MarshalJSON() ([]byte, error) { 674 type NoMethod Billing 675 raw := NoMethod(*s) 676 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 677} 678 679// BillingDestination: Configuration of a specific billing destination 680// (Currently only support bill against consumer project). 681type BillingDestination struct { 682 // Metrics: Names of the metrics to report to this billing destination. 683 // Each name must be defined in Service.metrics section. 684 Metrics []string `json:"metrics,omitempty"` 685 686 // MonitoredResource: The monitored resource type. The type must be 687 // defined in Service.monitored_resources section. 688 MonitoredResource string `json:"monitoredResource,omitempty"` 689 690 // ForceSendFields is a list of field names (e.g. "Metrics") to 691 // unconditionally include in API requests. By default, fields with 692 // empty values are omitted from API requests. However, any non-pointer, 693 // non-interface field appearing in ForceSendFields will be sent to the 694 // server regardless of whether the field is empty or not. This may be 695 // used to include empty fields in Patch requests. 696 ForceSendFields []string `json:"-"` 697 698 // NullFields is a list of field names (e.g. "Metrics") to include in 699 // API requests with the JSON null value. By default, fields with empty 700 // values are omitted from API requests. However, any field with an 701 // empty value appearing in NullFields will be sent to the server as 702 // null. It is an error if a field in this list has a non-empty value. 703 // This may be used to include null fields in Patch requests. 704 NullFields []string `json:"-"` 705} 706 707func (s *BillingDestination) MarshalJSON() ([]byte, error) { 708 type NoMethod BillingDestination 709 raw := NoMethod(*s) 710 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 711} 712 713// Context: `Context` defines which contexts an API requests. Example: 714// context: rules: - selector: "*" requested: - 715// google.rpc.context.ProjectContext - google.rpc.context.OriginContext 716// The above specifies that all methods in the API request 717// `google.rpc.context.ProjectContext` and 718// `google.rpc.context.OriginContext`. Available context types are 719// defined in package `google.rpc.context`. This also provides mechanism 720// to allowlist any protobuf message extension that can be sent in grpc 721// metadata using “x-goog-ext--bin” and “x-goog-ext--jspb” 722// format. For example, list any service specific protobuf types that 723// can appear in grpc metadata as follows in your yaml file: Example: 724// context: rules: - selector: 725// "google.example.library.v1.LibraryService.CreateBook" 726// allowed_request_extensions: - google.foo.v1.NewExtension 727// allowed_response_extensions: - google.foo.v1.NewExtension You can 728// also specify extension ID instead of fully qualified extension name 729// here. 730type Context struct { 731 // Rules: A list of RPC context rules that apply to individual API 732 // methods. **NOTE:** All service configuration rules follow "last one 733 // wins" order. 734 Rules []*ContextRule `json:"rules,omitempty"` 735 736 // ForceSendFields is a list of field names (e.g. "Rules") to 737 // unconditionally include in API requests. By default, fields with 738 // empty values are omitted from API requests. However, any non-pointer, 739 // non-interface field appearing in ForceSendFields will be sent to the 740 // server regardless of whether the field is empty or not. This may be 741 // used to include empty fields in Patch requests. 742 ForceSendFields []string `json:"-"` 743 744 // NullFields is a list of field names (e.g. "Rules") to include in API 745 // requests with the JSON null value. By default, fields with empty 746 // values are omitted from API requests. However, any field with an 747 // empty value appearing in NullFields will be sent to the server as 748 // null. It is an error if a field in this list has a non-empty value. 749 // This may be used to include null fields in Patch requests. 750 NullFields []string `json:"-"` 751} 752 753func (s *Context) MarshalJSON() ([]byte, error) { 754 type NoMethod Context 755 raw := NoMethod(*s) 756 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 757} 758 759// ContextRule: A context rule provides information about the context 760// for an individual API element. 761type ContextRule struct { 762 // AllowedRequestExtensions: A list of full type names or extension IDs 763 // of extensions allowed in grpc side channel from client to backend. 764 AllowedRequestExtensions []string `json:"allowedRequestExtensions,omitempty"` 765 766 // AllowedResponseExtensions: A list of full type names or extension IDs 767 // of extensions allowed in grpc side channel from backend to client. 768 AllowedResponseExtensions []string `json:"allowedResponseExtensions,omitempty"` 769 770 // Provided: A list of full type names of provided contexts. 771 Provided []string `json:"provided,omitempty"` 772 773 // Requested: A list of full type names of requested contexts. 774 Requested []string `json:"requested,omitempty"` 775 776 // Selector: Selects the methods to which this rule applies. Refer to 777 // selector for syntax details. 778 Selector string `json:"selector,omitempty"` 779 780 // ForceSendFields is a list of field names (e.g. 781 // "AllowedRequestExtensions") to unconditionally include in API 782 // requests. By default, fields with empty values are omitted from API 783 // requests. However, any non-pointer, non-interface field appearing in 784 // ForceSendFields will be sent to the server regardless of whether the 785 // field is empty or not. This may be used to include empty fields in 786 // Patch requests. 787 ForceSendFields []string `json:"-"` 788 789 // NullFields is a list of field names (e.g. "AllowedRequestExtensions") 790 // to include in API requests with the JSON null value. By default, 791 // fields with empty values are omitted from API requests. However, any 792 // field with an empty value appearing in NullFields will be sent to the 793 // server as null. It is an error if a field in this list has a 794 // non-empty value. This may be used to include null fields in Patch 795 // requests. 796 NullFields []string `json:"-"` 797} 798 799func (s *ContextRule) MarshalJSON() ([]byte, error) { 800 type NoMethod ContextRule 801 raw := NoMethod(*s) 802 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 803} 804 805// Control: Selects and configures the service controller used by the 806// service. The service controller handles features like abuse, quota, 807// billing, logging, monitoring, etc. 808type Control struct { 809 // Environment: The service control environment to use. If empty, no 810 // control plane feature (like quota and billing) will be enabled. 811 Environment string `json:"environment,omitempty"` 812 813 // ForceSendFields is a list of field names (e.g. "Environment") to 814 // unconditionally include in API requests. By default, fields with 815 // empty values are omitted from API requests. However, any non-pointer, 816 // non-interface field appearing in ForceSendFields will be sent to the 817 // server regardless of whether the field is empty or not. This may be 818 // used to include empty fields in Patch requests. 819 ForceSendFields []string `json:"-"` 820 821 // NullFields is a list of field names (e.g. "Environment") to include 822 // in API requests with the JSON null value. By default, fields with 823 // empty values are omitted from API requests. However, any field with 824 // an empty value appearing in NullFields will be sent to the server as 825 // null. It is an error if a field in this list has a non-empty value. 826 // This may be used to include null fields in Patch requests. 827 NullFields []string `json:"-"` 828} 829 830func (s *Control) MarshalJSON() ([]byte, error) { 831 type NoMethod Control 832 raw := NoMethod(*s) 833 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 834} 835 836// CustomError: Customize service error responses. For example, list any 837// service specific protobuf types that can appear in error detail lists 838// of error responses. Example: custom_error: types: - 839// google.foo.v1.CustomError - google.foo.v1.AnotherError 840type CustomError struct { 841 // Rules: The list of custom error rules that apply to individual API 842 // messages. **NOTE:** All service configuration rules follow "last one 843 // wins" order. 844 Rules []*CustomErrorRule `json:"rules,omitempty"` 845 846 // Types: The list of custom error detail types, e.g. 847 // 'google.foo.v1.CustomError'. 848 Types []string `json:"types,omitempty"` 849 850 // ForceSendFields is a list of field names (e.g. "Rules") to 851 // unconditionally include in API requests. By default, fields with 852 // empty values are omitted from API requests. However, any non-pointer, 853 // non-interface field appearing in ForceSendFields will be sent to the 854 // server regardless of whether the field is empty or not. This may be 855 // used to include empty fields in Patch requests. 856 ForceSendFields []string `json:"-"` 857 858 // NullFields is a list of field names (e.g. "Rules") to include in API 859 // requests with the JSON null value. By default, fields with empty 860 // values are omitted from API requests. However, any field with an 861 // empty value appearing in NullFields will be sent to the server as 862 // null. It is an error if a field in this list has a non-empty value. 863 // This may be used to include null fields in Patch requests. 864 NullFields []string `json:"-"` 865} 866 867func (s *CustomError) MarshalJSON() ([]byte, error) { 868 type NoMethod CustomError 869 raw := NoMethod(*s) 870 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 871} 872 873// CustomErrorRule: A custom error rule. 874type CustomErrorRule struct { 875 // IsErrorType: Mark this message as possible payload in error response. 876 // Otherwise, objects of this type will be filtered when they appear in 877 // error payload. 878 IsErrorType bool `json:"isErrorType,omitempty"` 879 880 // Selector: Selects messages to which this rule applies. Refer to 881 // selector for syntax details. 882 Selector string `json:"selector,omitempty"` 883 884 // ForceSendFields is a list of field names (e.g. "IsErrorType") to 885 // unconditionally include in API requests. By default, fields with 886 // empty values are omitted from API requests. However, any non-pointer, 887 // non-interface field appearing in ForceSendFields will be sent to the 888 // server regardless of whether the field is empty or not. This may be 889 // used to include empty fields in Patch requests. 890 ForceSendFields []string `json:"-"` 891 892 // NullFields is a list of field names (e.g. "IsErrorType") to include 893 // in API requests with the JSON null value. By default, fields with 894 // empty values are omitted from API requests. However, any field with 895 // an empty value appearing in NullFields will be sent to the server as 896 // null. It is an error if a field in this list has a non-empty value. 897 // This may be used to include null fields in Patch requests. 898 NullFields []string `json:"-"` 899} 900 901func (s *CustomErrorRule) MarshalJSON() ([]byte, error) { 902 type NoMethod CustomErrorRule 903 raw := NoMethod(*s) 904 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 905} 906 907// CustomHttpPattern: A custom pattern is used for defining custom HTTP 908// verb. 909type CustomHttpPattern struct { 910 // Kind: The name of this custom HTTP verb. 911 Kind string `json:"kind,omitempty"` 912 913 // Path: The path matched by this custom verb. 914 Path string `json:"path,omitempty"` 915 916 // ForceSendFields is a list of field names (e.g. "Kind") to 917 // unconditionally include in API requests. By default, fields with 918 // empty values are omitted from API requests. However, any non-pointer, 919 // non-interface field appearing in ForceSendFields will be sent to the 920 // server regardless of whether the field is empty or not. This may be 921 // used to include empty fields in Patch requests. 922 ForceSendFields []string `json:"-"` 923 924 // NullFields is a list of field names (e.g. "Kind") to include in API 925 // requests with the JSON null value. By default, fields with empty 926 // values are omitted from API requests. However, any field with an 927 // empty value appearing in NullFields will be sent to the server as 928 // null. It is an error if a field in this list has a non-empty value. 929 // This may be used to include null fields in Patch requests. 930 NullFields []string `json:"-"` 931} 932 933func (s *CustomHttpPattern) MarshalJSON() ([]byte, error) { 934 type NoMethod CustomHttpPattern 935 raw := NoMethod(*s) 936 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 937} 938 939// Documentation: `Documentation` provides the information for 940// describing a service. Example: documentation: summary: > The Google 941// Calendar API gives access to most calendar features. pages: - name: 942// Overview content: (== include google/foo/overview.md ==) - name: 943// Tutorial content: (== include google/foo/tutorial.md ==) subpages; - 944// name: Java content: (== include google/foo/tutorial_java.md ==) 945// rules: - selector: google.calendar.Calendar.Get description: > ... - 946// selector: google.calendar.Calendar.Put description: > ... 947// Documentation is provided in markdown syntax. In addition to standard 948// markdown features, definition lists, tables and fenced code blocks 949// are supported. Section headers can be provided and are interpreted 950// relative to the section nesting of the context where a documentation 951// fragment is embedded. Documentation from the IDL is merged with 952// documentation defined via the config at normalization time, where 953// documentation provided by config rules overrides IDL provided. A 954// number of constructs specific to the API platform are supported in 955// documentation text. In order to reference a proto element, the 956// following notation can be used: [fully.qualified.proto.name][] To 957// override the display text used for the link, this can be used: 958// [display text][fully.qualified.proto.name] Text can be excluded from 959// doc using the following notation: (-- internal comment --) A few 960// directives are available in documentation. Note that directives must 961// appear on a single line to be properly identified. The `include` 962// directive includes a markdown file from an external source: (== 963// include path/to/file ==) The `resource_for` directive marks a message 964// to be the resource of a collection in REST view. If it is not 965// specified, tools attempt to infer the resource from the operations in 966// a collection: (== resource_for v1.shelves.books ==) The directive 967// `suppress_warning` does not directly affect documentation and is 968// documented together with service config validation. 969type Documentation struct { 970 // DocumentationRootUrl: The URL to the root of documentation. 971 DocumentationRootUrl string `json:"documentationRootUrl,omitempty"` 972 973 // Overview: Declares a single overview page. For example: 974 // documentation: summary: ... overview: (== include overview.md ==) 975 // This is a shortcut for the following declaration (using pages style): 976 // documentation: summary: ... pages: - name: Overview content: (== 977 // include overview.md ==) Note: you cannot specify both `overview` 978 // field and `pages` field. 979 Overview string `json:"overview,omitempty"` 980 981 // Pages: The top level pages for the documentation set. 982 Pages []*Page `json:"pages,omitempty"` 983 984 // Rules: A list of documentation rules that apply to individual API 985 // elements. **NOTE:** All service configuration rules follow "last one 986 // wins" order. 987 Rules []*DocumentationRule `json:"rules,omitempty"` 988 989 // ServiceRootUrl: Specifies the service root url if the default one 990 // (the service name from the yaml file) is not suitable. This can be 991 // seen in any fully specified service urls as well as sections that 992 // show a base that other urls are relative to. 993 ServiceRootUrl string `json:"serviceRootUrl,omitempty"` 994 995 // Summary: A short summary of what the service does. Can only be 996 // provided by plain text. 997 Summary string `json:"summary,omitempty"` 998 999 // ForceSendFields is a list of field names (e.g. 1000 // "DocumentationRootUrl") to unconditionally include in API requests. 1001 // By default, fields with empty values are omitted from API requests. 1002 // However, any non-pointer, non-interface field appearing in 1003 // ForceSendFields will be sent to the server regardless of whether the 1004 // field is empty or not. This may be used to include empty fields in 1005 // Patch requests. 1006 ForceSendFields []string `json:"-"` 1007 1008 // NullFields is a list of field names (e.g. "DocumentationRootUrl") to 1009 // include in API requests with the JSON null value. By default, fields 1010 // with empty values are omitted from API requests. However, any field 1011 // with an empty value appearing in NullFields will be sent to the 1012 // server as null. It is an error if a field in this list has a 1013 // non-empty value. This may be used to include null fields in Patch 1014 // requests. 1015 NullFields []string `json:"-"` 1016} 1017 1018func (s *Documentation) MarshalJSON() ([]byte, error) { 1019 type NoMethod Documentation 1020 raw := NoMethod(*s) 1021 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1022} 1023 1024// DocumentationRule: A documentation rule provides information about 1025// individual API elements. 1026type DocumentationRule struct { 1027 // DeprecationDescription: Deprecation description of the selected 1028 // element(s). It can be provided if an element is marked as 1029 // `deprecated`. 1030 DeprecationDescription string `json:"deprecationDescription,omitempty"` 1031 1032 // Description: Description of the selected API(s). 1033 Description string `json:"description,omitempty"` 1034 1035 // Selector: The selector is a comma-separated list of patterns. Each 1036 // pattern is a qualified name of the element which may end in "*", 1037 // indicating a wildcard. Wildcards are only allowed at the end and for 1038 // a whole component of the qualified name, i.e. "foo.*" is ok, but not 1039 // "foo.b*" or "foo.*.bar". A wildcard will match one or more 1040 // components. To specify a default for all applicable elements, the 1041 // whole pattern "*" is used. 1042 Selector string `json:"selector,omitempty"` 1043 1044 // ForceSendFields is a list of field names (e.g. 1045 // "DeprecationDescription") to unconditionally include in API requests. 1046 // By default, fields with empty values are omitted from API requests. 1047 // However, any non-pointer, non-interface field appearing in 1048 // ForceSendFields will be sent to the server regardless of whether the 1049 // field is empty or not. This may be used to include empty fields in 1050 // Patch requests. 1051 ForceSendFields []string `json:"-"` 1052 1053 // NullFields is a list of field names (e.g. "DeprecationDescription") 1054 // to include in API requests with the JSON null value. By default, 1055 // fields with empty values are omitted from API requests. However, any 1056 // field with an empty value appearing in NullFields will be sent to the 1057 // server as null. It is an error if a field in this list has a 1058 // non-empty value. This may be used to include null fields in Patch 1059 // requests. 1060 NullFields []string `json:"-"` 1061} 1062 1063func (s *DocumentationRule) MarshalJSON() ([]byte, error) { 1064 type NoMethod DocumentationRule 1065 raw := NoMethod(*s) 1066 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1067} 1068 1069// Empty: A generic empty message that you can re-use to avoid defining 1070// duplicated empty messages in your APIs. A typical example is to use 1071// it as the request or the response type of an API method. For 1072// instance: service Foo { rpc Bar(google.protobuf.Empty) returns 1073// (google.protobuf.Empty); } The JSON representation for `Empty` is 1074// empty JSON object `{}`. 1075type Empty struct { 1076} 1077 1078// Endpoint: `Endpoint` describes a network address of a service that 1079// serves a set of APIs. It is commonly known as a service endpoint. A 1080// service may expose any number of service endpoints, and all service 1081// endpoints share the same service definition, such as quota limits and 1082// monitoring metrics. Example: type: google.api.Service name: 1083// library-example.googleapis.com endpoints: # Declares network address 1084// `https://library-example.googleapis.com` # for service 1085// `library-example.googleapis.com`. The `https` scheme # is implicit 1086// for all service endpoints. Other schemes may be # supported in the 1087// future. - name: library-example.googleapis.com allow_cors: false - 1088// name: content-staging-library-example.googleapis.com # Allows HTTP 1089// OPTIONS calls to be passed to the API frontend, for it # to decide 1090// whether the subsequent cross-origin request is allowed # to proceed. 1091// allow_cors: true 1092type Endpoint struct { 1093 // AllowCors: Allowing CORS 1094 // (https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka 1095 // cross-domain traffic, would allow the backends served from this 1096 // endpoint to receive and respond to HTTP OPTIONS requests. The 1097 // response will be used by the browser to determine whether the 1098 // subsequent cross-origin request is allowed to proceed. 1099 AllowCors bool `json:"allowCors,omitempty"` 1100 1101 // Name: The canonical name of this endpoint. 1102 Name string `json:"name,omitempty"` 1103 1104 // Target: The specification of an Internet routable address of API 1105 // frontend that will handle requests to this API Endpoint 1106 // (https://cloud.google.com/apis/design/glossary). It should be either 1107 // a valid IPv4 address or a fully-qualified domain name. For example, 1108 // "8.8.8.8" or "myservice.appspot.com". 1109 Target string `json:"target,omitempty"` 1110 1111 // ForceSendFields is a list of field names (e.g. "AllowCors") to 1112 // unconditionally include in API requests. By default, fields with 1113 // empty values are omitted from API requests. However, any non-pointer, 1114 // non-interface field appearing in ForceSendFields will be sent to the 1115 // server regardless of whether the field is empty or not. This may be 1116 // used to include empty fields in Patch requests. 1117 ForceSendFields []string `json:"-"` 1118 1119 // NullFields is a list of field names (e.g. "AllowCors") to include in 1120 // API requests with the JSON null value. By default, fields with empty 1121 // values are omitted from API requests. However, any field with an 1122 // empty value appearing in NullFields will be sent to the server as 1123 // null. It is an error if a field in this list has a non-empty value. 1124 // This may be used to include null fields in Patch requests. 1125 NullFields []string `json:"-"` 1126} 1127 1128func (s *Endpoint) MarshalJSON() ([]byte, error) { 1129 type NoMethod Endpoint 1130 raw := NoMethod(*s) 1131 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1132} 1133 1134// Enum: Enum type definition. 1135type Enum struct { 1136 // Enumvalue: Enum value definitions. 1137 Enumvalue []*EnumValue `json:"enumvalue,omitempty"` 1138 1139 // Name: Enum type name. 1140 Name string `json:"name,omitempty"` 1141 1142 // Options: Protocol buffer options. 1143 Options []*Option `json:"options,omitempty"` 1144 1145 // SourceContext: The source context. 1146 SourceContext *SourceContext `json:"sourceContext,omitempty"` 1147 1148 // Syntax: The source syntax. 1149 // 1150 // Possible values: 1151 // "SYNTAX_PROTO2" - Syntax `proto2`. 1152 // "SYNTAX_PROTO3" - Syntax `proto3`. 1153 Syntax string `json:"syntax,omitempty"` 1154 1155 // ForceSendFields is a list of field names (e.g. "Enumvalue") to 1156 // unconditionally include in API requests. By default, fields with 1157 // empty values are omitted from API requests. However, any non-pointer, 1158 // non-interface field appearing in ForceSendFields will be sent to the 1159 // server regardless of whether the field is empty or not. This may be 1160 // used to include empty fields in Patch requests. 1161 ForceSendFields []string `json:"-"` 1162 1163 // NullFields is a list of field names (e.g. "Enumvalue") to include in 1164 // API requests with the JSON null value. By default, fields with empty 1165 // values are omitted from API requests. However, any field with an 1166 // empty value appearing in NullFields will be sent to the server as 1167 // null. It is an error if a field in this list has a non-empty value. 1168 // This may be used to include null fields in Patch requests. 1169 NullFields []string `json:"-"` 1170} 1171 1172func (s *Enum) MarshalJSON() ([]byte, error) { 1173 type NoMethod Enum 1174 raw := NoMethod(*s) 1175 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1176} 1177 1178// EnumValue: Enum value definition. 1179type EnumValue struct { 1180 // Name: Enum value name. 1181 Name string `json:"name,omitempty"` 1182 1183 // Number: Enum value number. 1184 Number int64 `json:"number,omitempty"` 1185 1186 // Options: Protocol buffer options. 1187 Options []*Option `json:"options,omitempty"` 1188 1189 // ForceSendFields is a list of field names (e.g. "Name") to 1190 // unconditionally include in API requests. By default, fields with 1191 // empty values are omitted from API requests. However, any non-pointer, 1192 // non-interface field appearing in ForceSendFields will be sent to the 1193 // server regardless of whether the field is empty or not. This may be 1194 // used to include empty fields in Patch requests. 1195 ForceSendFields []string `json:"-"` 1196 1197 // NullFields is a list of field names (e.g. "Name") to include in API 1198 // requests with the JSON null value. By default, fields with empty 1199 // values are omitted from API requests. However, any field with an 1200 // empty value appearing in NullFields will be sent to the server as 1201 // null. It is an error if a field in this list has a non-empty value. 1202 // This may be used to include null fields in Patch requests. 1203 NullFields []string `json:"-"` 1204} 1205 1206func (s *EnumValue) MarshalJSON() ([]byte, error) { 1207 type NoMethod EnumValue 1208 raw := NoMethod(*s) 1209 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1210} 1211 1212// Field: A single field of a message type. 1213type Field struct { 1214 // Cardinality: The field cardinality. 1215 // 1216 // Possible values: 1217 // "CARDINALITY_UNKNOWN" - For fields with unknown cardinality. 1218 // "CARDINALITY_OPTIONAL" - For optional fields. 1219 // "CARDINALITY_REQUIRED" - For required fields. Proto2 syntax only. 1220 // "CARDINALITY_REPEATED" - For repeated fields. 1221 Cardinality string `json:"cardinality,omitempty"` 1222 1223 // DefaultValue: The string value of the default value of this field. 1224 // Proto2 syntax only. 1225 DefaultValue string `json:"defaultValue,omitempty"` 1226 1227 // JsonName: The field JSON name. 1228 JsonName string `json:"jsonName,omitempty"` 1229 1230 // Kind: The field type. 1231 // 1232 // Possible values: 1233 // "TYPE_UNKNOWN" - Field type unknown. 1234 // "TYPE_DOUBLE" - Field type double. 1235 // "TYPE_FLOAT" - Field type float. 1236 // "TYPE_INT64" - Field type int64. 1237 // "TYPE_UINT64" - Field type uint64. 1238 // "TYPE_INT32" - Field type int32. 1239 // "TYPE_FIXED64" - Field type fixed64. 1240 // "TYPE_FIXED32" - Field type fixed32. 1241 // "TYPE_BOOL" - Field type bool. 1242 // "TYPE_STRING" - Field type string. 1243 // "TYPE_GROUP" - Field type group. Proto2 syntax only, and 1244 // deprecated. 1245 // "TYPE_MESSAGE" - Field type message. 1246 // "TYPE_BYTES" - Field type bytes. 1247 // "TYPE_UINT32" - Field type uint32. 1248 // "TYPE_ENUM" - Field type enum. 1249 // "TYPE_SFIXED32" - Field type sfixed32. 1250 // "TYPE_SFIXED64" - Field type sfixed64. 1251 // "TYPE_SINT32" - Field type sint32. 1252 // "TYPE_SINT64" - Field type sint64. 1253 Kind string `json:"kind,omitempty"` 1254 1255 // Name: The field name. 1256 Name string `json:"name,omitempty"` 1257 1258 // Number: The field number. 1259 Number int64 `json:"number,omitempty"` 1260 1261 // OneofIndex: The index of the field type in `Type.oneofs`, for message 1262 // or enumeration types. The first type has index 1; zero means the type 1263 // is not in the list. 1264 OneofIndex int64 `json:"oneofIndex,omitempty"` 1265 1266 // Options: The protocol buffer options. 1267 Options []*Option `json:"options,omitempty"` 1268 1269 // Packed: Whether to use alternative packed wire representation. 1270 Packed bool `json:"packed,omitempty"` 1271 1272 // TypeUrl: The field type URL, without the scheme, for message or 1273 // enumeration types. Example: 1274 // "type.googleapis.com/google.protobuf.Timestamp". 1275 TypeUrl string `json:"typeUrl,omitempty"` 1276 1277 // ForceSendFields is a list of field names (e.g. "Cardinality") to 1278 // unconditionally include in API requests. By default, fields with 1279 // empty values are omitted from API requests. However, any non-pointer, 1280 // non-interface field appearing in ForceSendFields will be sent to the 1281 // server regardless of whether the field is empty or not. This may be 1282 // used to include empty fields in Patch requests. 1283 ForceSendFields []string `json:"-"` 1284 1285 // NullFields is a list of field names (e.g. "Cardinality") to include 1286 // in API requests with the JSON null value. By default, fields with 1287 // empty values are omitted from API requests. However, any field with 1288 // an empty value appearing in NullFields will be sent to the server as 1289 // null. It is an error if a field in this list has a non-empty value. 1290 // This may be used to include null fields in Patch requests. 1291 NullFields []string `json:"-"` 1292} 1293 1294func (s *Field) MarshalJSON() ([]byte, error) { 1295 type NoMethod Field 1296 raw := NoMethod(*s) 1297 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1298} 1299 1300// Http: Defines the HTTP configuration for an API service. It contains 1301// a list of HttpRule, each specifying the mapping of an RPC method to 1302// one or more HTTP REST API methods. 1303type Http struct { 1304 // FullyDecodeReservedExpansion: When set to true, URL path parameters 1305 // will be fully URI-decoded except in cases of single segment matches 1306 // in reserved expansion, where "%2F" will be left encoded. The default 1307 // behavior is to not decode RFC 6570 reserved characters in multi 1308 // segment matches. 1309 FullyDecodeReservedExpansion bool `json:"fullyDecodeReservedExpansion,omitempty"` 1310 1311 // Rules: A list of HTTP configuration rules that apply to individual 1312 // API methods. **NOTE:** All service configuration rules follow "last 1313 // one wins" order. 1314 Rules []*HttpRule `json:"rules,omitempty"` 1315 1316 // ForceSendFields is a list of field names (e.g. 1317 // "FullyDecodeReservedExpansion") to unconditionally include in API 1318 // requests. By default, fields with empty values are omitted from API 1319 // requests. However, any non-pointer, non-interface field appearing in 1320 // ForceSendFields will be sent to the server regardless of whether the 1321 // field is empty or not. This may be used to include empty fields in 1322 // Patch requests. 1323 ForceSendFields []string `json:"-"` 1324 1325 // NullFields is a list of field names (e.g. 1326 // "FullyDecodeReservedExpansion") to include in API requests with the 1327 // JSON null value. By default, fields with empty values are omitted 1328 // from API requests. However, any field with an empty value appearing 1329 // in NullFields will be sent to the server as null. It is an error if a 1330 // field in this list has a non-empty value. This may be used to include 1331 // null fields in Patch requests. 1332 NullFields []string `json:"-"` 1333} 1334 1335func (s *Http) MarshalJSON() ([]byte, error) { 1336 type NoMethod Http 1337 raw := NoMethod(*s) 1338 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1339} 1340 1341// HttpRule: # gRPC Transcoding gRPC Transcoding is a feature for 1342// mapping between a gRPC method and one or more HTTP REST endpoints. It 1343// allows developers to build a single API service that supports both 1344// gRPC APIs and REST APIs. Many systems, including Google APIs 1345// (https://github.com/googleapis/googleapis), Cloud Endpoints 1346// (https://cloud.google.com/endpoints), gRPC Gateway 1347// (https://github.com/grpc-ecosystem/grpc-gateway), and Envoy 1348// (https://github.com/envoyproxy/envoy) proxy support this feature and 1349// use it for large scale production services. `HttpRule` defines the 1350// schema of the gRPC/REST mapping. The mapping specifies how different 1351// portions of the gRPC request message are mapped to the URL path, URL 1352// query parameters, and HTTP request body. It also controls how the 1353// gRPC response message is mapped to the HTTP response body. `HttpRule` 1354// is typically specified as an `google.api.http` annotation on the gRPC 1355// method. Each mapping specifies a URL path template and an HTTP 1356// method. The path template may refer to one or more fields in the gRPC 1357// request message, as long as each field is a non-repeated field with a 1358// primitive (non-message) type. The path template controls how fields 1359// of the request message are mapped to the URL path. Example: service 1360// Messaging { rpc GetMessage(GetMessageRequest) returns (Message) { 1361// option (google.api.http) = { get: "/v1/{name=messages/*}" }; } } 1362// message GetMessageRequest { string name = 1; // Mapped to URL path. } 1363// message Message { string text = 1; // The resource content. } This 1364// enables an HTTP REST to gRPC mapping as below: HTTP | gRPC 1365// -----|----- `GET /v1/messages/123456` | `GetMessage(name: 1366// "messages/123456")` Any fields in the request message which are not 1367// bound by the path template automatically become HTTP query parameters 1368// if there is no HTTP request body. For example: service Messaging { 1369// rpc GetMessage(GetMessageRequest) returns (Message) { option 1370// (google.api.http) = { get:"/v1/messages/{message_id}" }; } } message 1371// GetMessageRequest { message SubMessage { string subfield = 1; } 1372// string message_id = 1; // Mapped to URL path. int64 revision = 2; // 1373// Mapped to URL query parameter `revision`. SubMessage sub = 3; // 1374// Mapped to URL query parameter `sub.subfield`. } This enables a HTTP 1375// JSON to RPC mapping as below: HTTP | gRPC -----|----- `GET 1376// /v1/messages/123456?revision=2&sub.subfield=foo` | 1377// `GetMessage(message_id: "123456" revision: 2 sub: 1378// SubMessage(subfield: "foo"))` Note that fields which are mapped to 1379// URL query parameters must have a primitive type or a repeated 1380// primitive type or a non-repeated message type. In the case of a 1381// repeated type, the parameter can be repeated in the URL as 1382// `...?param=A¶m=B`. In the case of a message type, each field of 1383// the message is mapped to a separate parameter, such as 1384// `...?foo.a=A&foo.b=B&foo.c=C`. For HTTP methods that allow a request 1385// body, the `body` field specifies the mapping. Consider a REST update 1386// method on the message resource collection: service Messaging { rpc 1387// UpdateMessage(UpdateMessageRequest) returns (Message) { option 1388// (google.api.http) = { patch: "/v1/messages/{message_id}" body: 1389// "message" }; } } message UpdateMessageRequest { string message_id = 1390// 1; // mapped to the URL Message message = 2; // mapped to the body } 1391// The following HTTP JSON to RPC mapping is enabled, where the 1392// representation of the JSON in the request body is determined by 1393// protos JSON encoding: HTTP | gRPC -----|----- `PATCH 1394// /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: 1395// "123456" message { text: "Hi!" })` The special name `*` can be used 1396// in the body mapping to define that every field not bound by the path 1397// template should be mapped to the request body. This enables the 1398// following alternative definition of the update method: service 1399// Messaging { rpc UpdateMessage(Message) returns (Message) { option 1400// (google.api.http) = { patch: "/v1/messages/{message_id}" body: "*" }; 1401// } } message Message { string message_id = 1; string text = 2; } The 1402// following HTTP JSON to RPC mapping is enabled: HTTP | gRPC 1403// -----|----- `PATCH /v1/messages/123456 { "text": "Hi!" }` | 1404// `UpdateMessage(message_id: "123456" text: "Hi!")` Note that when 1405// using `*` in the body mapping, it is not possible to have HTTP 1406// parameters, as all fields not bound by the path end in the body. This 1407// makes this option more rarely used in practice when defining REST 1408// APIs. The common usage of `*` is in custom methods which don't use 1409// the URL at all for transferring data. It is possible to define 1410// multiple HTTP methods for one RPC by using the `additional_bindings` 1411// option. Example: service Messaging { rpc 1412// GetMessage(GetMessageRequest) returns (Message) { option 1413// (google.api.http) = { get: "/v1/messages/{message_id}" 1414// additional_bindings { get: 1415// "/v1/users/{user_id}/messages/{message_id}" } }; } } message 1416// GetMessageRequest { string message_id = 1; string user_id = 2; } This 1417// enables the following two alternative HTTP JSON to RPC mappings: HTTP 1418// | gRPC -----|----- `GET /v1/messages/123456` | 1419// `GetMessage(message_id: "123456")` `GET /v1/users/me/messages/123456` 1420// | `GetMessage(user_id: "me" message_id: "123456")` ## Rules for HTTP 1421// mapping 1. Leaf request fields (recursive expansion nested messages 1422// in the request message) are classified into three categories: - 1423// Fields referred by the path template. They are passed via the URL 1424// path. - Fields referred by the HttpRule.body. They are passed via the 1425// HTTP request body. - All other fields are passed via the URL query 1426// parameters, and the parameter name is the field path in the request 1427// message. A repeated field can be represented as multiple query 1428// parameters under the same name. 2. If HttpRule.body is "*", there is 1429// no URL query parameter, all fields are passed via URL path and HTTP 1430// request body. 3. If HttpRule.body is omitted, there is no HTTP 1431// request body, all fields are passed via URL path and URL query 1432// parameters. ### Path template syntax Template = "/" Segments [ Verb ] 1433// ; Segments = Segment { "/" Segment } ; Segment = "*" | "**" | LITERAL 1434// | Variable ; Variable = "{" FieldPath [ "=" Segments ] "}" ; 1435// FieldPath = IDENT { "." IDENT } ; Verb = ":" LITERAL ; The syntax `*` 1436// matches a single URL path segment. The syntax `**` matches zero or 1437// more URL path segments, which must be the last part of the URL path 1438// except the `Verb`. The syntax `Variable` matches part of the URL path 1439// as specified by its template. A variable template must not contain 1440// other variables. If a variable matches a single path segment, its 1441// template may be omitted, e.g. `{var}` is equivalent to `{var=*}`. The 1442// syntax `LITERAL` matches literal text in the URL path. If the 1443// `LITERAL` contains any reserved character, such characters should be 1444// percent-encoded before the matching. If a variable contains exactly 1445// one path segment, such as "{var}" or "{var=*}", when such a 1446// variable is expanded into a URL path on the client side, all 1447// characters except `[-_.~0-9a-zA-Z]` are percent-encoded. The server 1448// side does the reverse decoding. Such variables show up in the 1449// Discovery Document 1450// (https://developers.google.com/discovery/v1/reference/apis) as 1451// `{var}`. If a variable contains multiple path segments, such as 1452// "{var=foo/*}" or "{var=**}", when such a variable is expanded 1453// into a URL path on the client side, all characters except 1454// `[-_.~/0-9a-zA-Z]` are percent-encoded. The server side does the 1455// reverse decoding, except "%2F" and "%2f" are left unchanged. Such 1456// variables show up in the Discovery Document 1457// (https://developers.google.com/discovery/v1/reference/apis) as 1458// `{+var}`. ## Using gRPC API Service Configuration gRPC API Service 1459// Configuration (service config) is a configuration language for 1460// configuring a gRPC service to become a user-facing product. The 1461// service config is simply the YAML representation of the 1462// `google.api.Service` proto message. As an alternative to annotating 1463// your proto file, you can configure gRPC transcoding in your service 1464// config YAML files. You do this by specifying a `HttpRule` that maps 1465// the gRPC method to a REST endpoint, achieving the same effect as the 1466// proto annotation. This can be particularly useful if you have a proto 1467// that is reused in multiple services. Note that any transcoding 1468// specified in the service config will override any matching 1469// transcoding configuration in the proto. Example: http: rules: # 1470// Selects a gRPC method and applies HttpRule to it. - selector: 1471// example.v1.Messaging.GetMessage get: 1472// /v1/messages/{message_id}/{sub.subfield} ## Special notes When gRPC 1473// Transcoding is used to map a gRPC to JSON REST endpoints, the proto 1474// to JSON conversion must follow the proto3 specification 1475// (https://developers.google.com/protocol-buffers/docs/proto3#json). 1476// While the single segment variable follows the semantics of RFC 6570 1477// (https://tools.ietf.org/html/rfc6570) Section 3.2.2 Simple String 1478// Expansion, the multi segment variable **does not** follow RFC 6570 1479// Section 3.2.3 Reserved Expansion. The reason is that the Reserved 1480// Expansion does not expand special characters like `?` and `#`, which 1481// would lead to invalid URLs. As the result, gRPC Transcoding uses a 1482// custom encoding for multi segment variables. The path variables 1483// **must not** refer to any repeated or mapped field, because client 1484// libraries are not capable of handling such variable expansion. The 1485// path variables **must not** capture the leading "/" character. The 1486// reason is that the most common use case "{var}" does not capture the 1487// leading "/" character. For consistency, all path variables must share 1488// the same behavior. Repeated message fields must not be mapped to URL 1489// query parameters, because no client library can support such 1490// complicated mapping. If an API needs to use a JSON array for request 1491// or response body, it can map the request or response body to a 1492// repeated field. However, some gRPC Transcoding implementations may 1493// not support this feature. 1494type HttpRule struct { 1495 // AdditionalBindings: Additional HTTP bindings for the selector. Nested 1496 // bindings must not contain an `additional_bindings` field themselves 1497 // (that is, the nesting may only be one level deep). 1498 AdditionalBindings []*HttpRule `json:"additionalBindings,omitempty"` 1499 1500 // Body: The name of the request field whose value is mapped to the HTTP 1501 // request body, or `*` for mapping all request fields not captured by 1502 // the path pattern to the HTTP body, or omitted for not having any HTTP 1503 // request body. NOTE: the referred field must be present at the 1504 // top-level of the request message type. 1505 Body string `json:"body,omitempty"` 1506 1507 // Custom: The custom pattern is used for specifying an HTTP method that 1508 // is not included in the `pattern` field, such as HEAD, or "*" to leave 1509 // the HTTP method unspecified for this rule. The wild-card rule is 1510 // useful for services that provide content to Web (HTML) clients. 1511 Custom *CustomHttpPattern `json:"custom,omitempty"` 1512 1513 // Delete: Maps to HTTP DELETE. Used for deleting a resource. 1514 Delete string `json:"delete,omitempty"` 1515 1516 // Get: Maps to HTTP GET. Used for listing and getting information about 1517 // resources. 1518 Get string `json:"get,omitempty"` 1519 1520 // Patch: Maps to HTTP PATCH. Used for updating a resource. 1521 Patch string `json:"patch,omitempty"` 1522 1523 // Post: Maps to HTTP POST. Used for creating a resource or performing 1524 // an action. 1525 Post string `json:"post,omitempty"` 1526 1527 // Put: Maps to HTTP PUT. Used for replacing a resource. 1528 Put string `json:"put,omitempty"` 1529 1530 // ResponseBody: Optional. The name of the response field whose value is 1531 // mapped to the HTTP response body. When omitted, the entire response 1532 // message will be used as the HTTP response body. NOTE: The referred 1533 // field must be present at the top-level of the response message type. 1534 ResponseBody string `json:"responseBody,omitempty"` 1535 1536 // Selector: Selects a method to which this rule applies. Refer to 1537 // selector for syntax details. 1538 Selector string `json:"selector,omitempty"` 1539 1540 // ForceSendFields is a list of field names (e.g. "AdditionalBindings") 1541 // to unconditionally include in API requests. By default, fields with 1542 // empty values are omitted from API requests. However, any non-pointer, 1543 // non-interface field appearing in ForceSendFields will be sent to the 1544 // server regardless of whether the field is empty or not. This may be 1545 // used to include empty fields in Patch requests. 1546 ForceSendFields []string `json:"-"` 1547 1548 // NullFields is a list of field names (e.g. "AdditionalBindings") to 1549 // include in API requests with the JSON null value. By default, fields 1550 // with empty values are omitted from API requests. However, any field 1551 // with an empty value appearing in NullFields will be sent to the 1552 // server as null. It is an error if a field in this list has a 1553 // non-empty value. This may be used to include null fields in Patch 1554 // requests. 1555 NullFields []string `json:"-"` 1556} 1557 1558func (s *HttpRule) MarshalJSON() ([]byte, error) { 1559 type NoMethod HttpRule 1560 raw := NoMethod(*s) 1561 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1562} 1563 1564// JwtLocation: Specifies a location to extract JWT from an API request. 1565type JwtLocation struct { 1566 // Header: Specifies HTTP header name to extract JWT token. 1567 Header string `json:"header,omitempty"` 1568 1569 // Query: Specifies URL query parameter name to extract JWT token. 1570 Query string `json:"query,omitempty"` 1571 1572 // ValuePrefix: The value prefix. The value format is 1573 // "value_prefix{token}" Only applies to "in" header type. Must be empty 1574 // for "in" query type. If not empty, the header value has to match 1575 // (case sensitive) this prefix. If not matched, JWT will not be 1576 // extracted. If matched, JWT will be extracted after the prefix is 1577 // removed. For example, for "Authorization: Bearer {JWT}", 1578 // value_prefix="Bearer " with a space at the end. 1579 ValuePrefix string `json:"valuePrefix,omitempty"` 1580 1581 // ForceSendFields is a list of field names (e.g. "Header") to 1582 // unconditionally include in API requests. By default, fields with 1583 // empty values are omitted from API requests. However, any non-pointer, 1584 // non-interface field appearing in ForceSendFields will be sent to the 1585 // server regardless of whether the field is empty or not. This may be 1586 // used to include empty fields in Patch requests. 1587 ForceSendFields []string `json:"-"` 1588 1589 // NullFields is a list of field names (e.g. "Header") to include in API 1590 // requests with the JSON null value. By default, fields with empty 1591 // values are omitted from API requests. However, any field with an 1592 // empty value appearing in NullFields will be sent to the server as 1593 // null. It is an error if a field in this list has a non-empty value. 1594 // This may be used to include null fields in Patch requests. 1595 NullFields []string `json:"-"` 1596} 1597 1598func (s *JwtLocation) MarshalJSON() ([]byte, error) { 1599 type NoMethod JwtLocation 1600 raw := NoMethod(*s) 1601 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1602} 1603 1604// LabelDescriptor: A description of a label. 1605type LabelDescriptor struct { 1606 // Description: A human-readable description for the label. 1607 Description string `json:"description,omitempty"` 1608 1609 // Key: The label key. 1610 Key string `json:"key,omitempty"` 1611 1612 // ValueType: The type of data that can be assigned to the label. 1613 // 1614 // Possible values: 1615 // "STRING" - A variable-length string. This is the default. 1616 // "BOOL" - Boolean; true or false. 1617 // "INT64" - A 64-bit signed integer. 1618 ValueType string `json:"valueType,omitempty"` 1619 1620 // ForceSendFields is a list of field names (e.g. "Description") to 1621 // unconditionally include in API requests. By default, fields with 1622 // empty values are omitted from API requests. However, any non-pointer, 1623 // non-interface field appearing in ForceSendFields will be sent to the 1624 // server regardless of whether the field is empty or not. This may be 1625 // used to include empty fields in Patch requests. 1626 ForceSendFields []string `json:"-"` 1627 1628 // NullFields is a list of field names (e.g. "Description") to include 1629 // in API requests with the JSON null value. By default, fields with 1630 // empty values are omitted from API requests. However, any field with 1631 // an empty value appearing in NullFields will be sent to the server as 1632 // null. It is an error if a field in this list has a non-empty value. 1633 // This may be used to include null fields in Patch requests. 1634 NullFields []string `json:"-"` 1635} 1636 1637func (s *LabelDescriptor) MarshalJSON() ([]byte, error) { 1638 type NoMethod LabelDescriptor 1639 raw := NoMethod(*s) 1640 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1641} 1642 1643// LogDescriptor: A description of a log type. Example in YAML format: - 1644// name: library.googleapis.com/activity_history description: The 1645// history of borrowing and returning library items. display_name: 1646// Activity labels: - key: /customer_id description: Identifier of a 1647// library customer 1648type LogDescriptor struct { 1649 // Description: A human-readable description of this log. This 1650 // information appears in the documentation and can contain details. 1651 Description string `json:"description,omitempty"` 1652 1653 // DisplayName: The human-readable name for this log. This information 1654 // appears on the user interface and should be concise. 1655 DisplayName string `json:"displayName,omitempty"` 1656 1657 // Labels: The set of labels that are available to describe a specific 1658 // log entry. Runtime requests that contain labels not specified here 1659 // are considered invalid. 1660 Labels []*LabelDescriptor `json:"labels,omitempty"` 1661 1662 // Name: The name of the log. It must be less than 512 characters long 1663 // and can include the following characters: upper- and lower-case 1664 // alphanumeric characters [A-Za-z0-9], and punctuation characters 1665 // including slash, underscore, hyphen, period [/_-.]. 1666 Name string `json:"name,omitempty"` 1667 1668 // ForceSendFields is a list of field names (e.g. "Description") to 1669 // unconditionally include in API requests. By default, fields with 1670 // empty values are omitted from API requests. However, any non-pointer, 1671 // non-interface field appearing in ForceSendFields will be sent to the 1672 // server regardless of whether the field is empty or not. This may be 1673 // used to include empty fields in Patch requests. 1674 ForceSendFields []string `json:"-"` 1675 1676 // NullFields is a list of field names (e.g. "Description") to include 1677 // in API requests with the JSON null value. By default, fields with 1678 // empty values are omitted from API requests. However, any field with 1679 // an empty value appearing in NullFields will be sent to the server as 1680 // null. It is an error if a field in this list has a non-empty value. 1681 // This may be used to include null fields in Patch requests. 1682 NullFields []string `json:"-"` 1683} 1684 1685func (s *LogDescriptor) MarshalJSON() ([]byte, error) { 1686 type NoMethod LogDescriptor 1687 raw := NoMethod(*s) 1688 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1689} 1690 1691// Logging: Logging configuration of the service. The following example 1692// shows how to configure logs to be sent to the producer and consumer 1693// projects. In the example, the `activity_history` log is sent to both 1694// the producer and consumer projects, whereas the `purchase_history` 1695// log is only sent to the producer project. monitored_resources: - 1696// type: library.googleapis.com/branch labels: - key: /city description: 1697// The city where the library branch is located in. - key: /name 1698// description: The name of the branch. logs: - name: activity_history 1699// labels: - key: /customer_id - name: purchase_history logging: 1700// producer_destinations: - monitored_resource: 1701// library.googleapis.com/branch logs: - activity_history - 1702// purchase_history consumer_destinations: - monitored_resource: 1703// library.googleapis.com/branch logs: - activity_history 1704type Logging struct { 1705 // ConsumerDestinations: Logging configurations for sending logs to the 1706 // consumer project. There can be multiple consumer destinations, each 1707 // one must have a different monitored resource type. A log can be used 1708 // in at most one consumer destination. 1709 ConsumerDestinations []*LoggingDestination `json:"consumerDestinations,omitempty"` 1710 1711 // ProducerDestinations: Logging configurations for sending logs to the 1712 // producer project. There can be multiple producer destinations, each 1713 // one must have a different monitored resource type. A log can be used 1714 // in at most one producer destination. 1715 ProducerDestinations []*LoggingDestination `json:"producerDestinations,omitempty"` 1716 1717 // ForceSendFields is a list of field names (e.g. 1718 // "ConsumerDestinations") to unconditionally include in API requests. 1719 // By default, fields with empty values are omitted from API requests. 1720 // However, any non-pointer, non-interface field appearing in 1721 // ForceSendFields will be sent to the server regardless of whether the 1722 // field is empty or not. This may be used to include empty fields in 1723 // Patch requests. 1724 ForceSendFields []string `json:"-"` 1725 1726 // NullFields is a list of field names (e.g. "ConsumerDestinations") to 1727 // include in API requests with the JSON null value. By default, fields 1728 // with empty values are omitted from API requests. However, any field 1729 // with an empty value appearing in NullFields will be sent to the 1730 // server as null. It is an error if a field in this list has a 1731 // non-empty value. This may be used to include null fields in Patch 1732 // requests. 1733 NullFields []string `json:"-"` 1734} 1735 1736func (s *Logging) MarshalJSON() ([]byte, error) { 1737 type NoMethod Logging 1738 raw := NoMethod(*s) 1739 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1740} 1741 1742// LoggingDestination: Configuration of a specific logging destination 1743// (the producer project or the consumer project). 1744type LoggingDestination struct { 1745 // Logs: Names of the logs to be sent to this destination. Each name 1746 // must be defined in the Service.logs section. If the log name is not a 1747 // domain scoped name, it will be automatically prefixed with the 1748 // service name followed by "/". 1749 Logs []string `json:"logs,omitempty"` 1750 1751 // MonitoredResource: The monitored resource type. The type must be 1752 // defined in the Service.monitored_resources section. 1753 MonitoredResource string `json:"monitoredResource,omitempty"` 1754 1755 // ForceSendFields is a list of field names (e.g. "Logs") to 1756 // unconditionally include in API requests. By default, fields with 1757 // empty values are omitted from API requests. However, any non-pointer, 1758 // non-interface field appearing in ForceSendFields will be sent to the 1759 // server regardless of whether the field is empty or not. This may be 1760 // used to include empty fields in Patch requests. 1761 ForceSendFields []string `json:"-"` 1762 1763 // NullFields is a list of field names (e.g. "Logs") to include in API 1764 // requests with the JSON null value. By default, fields with empty 1765 // values are omitted from API requests. However, any field with an 1766 // empty value appearing in NullFields will be sent to the server as 1767 // null. It is an error if a field in this list has a non-empty value. 1768 // This may be used to include null fields in Patch requests. 1769 NullFields []string `json:"-"` 1770} 1771 1772func (s *LoggingDestination) MarshalJSON() ([]byte, error) { 1773 type NoMethod LoggingDestination 1774 raw := NoMethod(*s) 1775 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1776} 1777 1778// Method: Method represents a method of an API interface. 1779type Method struct { 1780 // Name: The simple name of this method. 1781 Name string `json:"name,omitempty"` 1782 1783 // Options: Any metadata attached to the method. 1784 Options []*Option `json:"options,omitempty"` 1785 1786 // RequestStreaming: If true, the request is streamed. 1787 RequestStreaming bool `json:"requestStreaming,omitempty"` 1788 1789 // RequestTypeUrl: A URL of the input message type. 1790 RequestTypeUrl string `json:"requestTypeUrl,omitempty"` 1791 1792 // ResponseStreaming: If true, the response is streamed. 1793 ResponseStreaming bool `json:"responseStreaming,omitempty"` 1794 1795 // ResponseTypeUrl: The URL of the output message type. 1796 ResponseTypeUrl string `json:"responseTypeUrl,omitempty"` 1797 1798 // Syntax: The source syntax of this method. 1799 // 1800 // Possible values: 1801 // "SYNTAX_PROTO2" - Syntax `proto2`. 1802 // "SYNTAX_PROTO3" - Syntax `proto3`. 1803 Syntax string `json:"syntax,omitempty"` 1804 1805 // ForceSendFields is a list of field names (e.g. "Name") to 1806 // unconditionally include in API requests. By default, fields with 1807 // empty values are omitted from API requests. However, any non-pointer, 1808 // non-interface field appearing in ForceSendFields will be sent to the 1809 // server regardless of whether the field is empty or not. This may be 1810 // used to include empty fields in Patch requests. 1811 ForceSendFields []string `json:"-"` 1812 1813 // NullFields is a list of field names (e.g. "Name") to include in API 1814 // requests with the JSON null value. By default, fields with empty 1815 // values are omitted from API requests. However, any field with an 1816 // empty value appearing in NullFields will be sent to the server as 1817 // null. It is an error if a field in this list has a non-empty value. 1818 // This may be used to include null fields in Patch requests. 1819 NullFields []string `json:"-"` 1820} 1821 1822func (s *Method) MarshalJSON() ([]byte, error) { 1823 type NoMethod Method 1824 raw := NoMethod(*s) 1825 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1826} 1827 1828// MetricDescriptor: Defines a metric type and its schema. Once a metric 1829// descriptor is created, deleting or altering it stops data collection 1830// and makes the metric type's existing data unusable. 1831type MetricDescriptor struct { 1832 // Description: A detailed description of the metric, which can be used 1833 // in documentation. 1834 Description string `json:"description,omitempty"` 1835 1836 // DisplayName: A concise name for the metric, which can be displayed in 1837 // user interfaces. Use sentence case without an ending period, for 1838 // example "Request count". This field is optional but it is recommended 1839 // to be set for any metrics associated with user-visible concepts, such 1840 // as Quota. 1841 DisplayName string `json:"displayName,omitempty"` 1842 1843 // Labels: The set of labels that can be used to describe a specific 1844 // instance of this metric type. For example, the 1845 // `appengine.googleapis.com/http/server/response_latencies` metric type 1846 // has a label for the HTTP response code, `response_code`, so you can 1847 // look at latencies for successful responses or just for responses that 1848 // failed. 1849 Labels []*LabelDescriptor `json:"labels,omitempty"` 1850 1851 // LaunchStage: Optional. The launch stage of the metric definition. 1852 // 1853 // Possible values: 1854 // "LAUNCH_STAGE_UNSPECIFIED" - Do not use this default value. 1855 // "UNIMPLEMENTED" - The feature is not yet implemented. Users can not 1856 // use it. 1857 // "PRELAUNCH" - Prelaunch features are hidden from users and are only 1858 // visible internally. 1859 // "EARLY_ACCESS" - Early Access features are limited to a closed 1860 // group of testers. To use these features, you must sign up in advance 1861 // and sign a Trusted Tester agreement (which includes confidentiality 1862 // provisions). These features may be unstable, changed in 1863 // backward-incompatible ways, and are not guaranteed to be released. 1864 // "ALPHA" - Alpha is a limited availability test for releases before 1865 // they are cleared for widespread use. By Alpha, all significant design 1866 // issues are resolved and we are in the process of verifying 1867 // functionality. Alpha customers need to apply for access, agree to 1868 // applicable terms, and have their projects allowlisted. Alpha releases 1869 // don’t have to be feature complete, no SLAs are provided, and there 1870 // are no technical support obligations, but they will be far enough 1871 // along that customers can actually use them in test environments or 1872 // for limited-use tests -- just like they would in normal production 1873 // cases. 1874 // "BETA" - Beta is the point at which we are ready to open a release 1875 // for any customer to use. There are no SLA or technical support 1876 // obligations in a Beta release. Products will be complete from a 1877 // feature perspective, but may have some open outstanding issues. Beta 1878 // releases are suitable for limited production use cases. 1879 // "GA" - GA features are open to all developers and are considered 1880 // stable and fully qualified for production use. 1881 // "DEPRECATED" - Deprecated features are scheduled to be shut down 1882 // and removed. For more information, see the “Deprecation Policy” 1883 // section of our [Terms of Service](https://cloud.google.com/terms/) 1884 // and the [Google Cloud Platform Subject to the Deprecation 1885 // Policy](https://cloud.google.com/terms/deprecation) documentation. 1886 LaunchStage string `json:"launchStage,omitempty"` 1887 1888 // Metadata: Optional. Metadata which can be used to guide usage of the 1889 // metric. 1890 Metadata *MetricDescriptorMetadata `json:"metadata,omitempty"` 1891 1892 // MetricKind: Whether the metric records instantaneous values, changes 1893 // to a value, etc. Some combinations of `metric_kind` and `value_type` 1894 // might not be supported. 1895 // 1896 // Possible values: 1897 // "METRIC_KIND_UNSPECIFIED" - Do not use this default value. 1898 // "GAUGE" - An instantaneous measurement of a value. 1899 // "DELTA" - The change in a value during a time interval. 1900 // "CUMULATIVE" - A value accumulated over a time interval. Cumulative 1901 // measurements in a time series should have the same start time and 1902 // increasing end times, until an event resets the cumulative value to 1903 // zero and sets a new start time for the following points. 1904 MetricKind string `json:"metricKind,omitempty"` 1905 1906 // MonitoredResourceTypes: Read-only. If present, then a time series, 1907 // which is identified partially by a metric type and a 1908 // MonitoredResourceDescriptor, that is associated with this metric type 1909 // can only be associated with one of the monitored resource types 1910 // listed here. 1911 MonitoredResourceTypes []string `json:"monitoredResourceTypes,omitempty"` 1912 1913 // Name: The resource name of the metric descriptor. 1914 Name string `json:"name,omitempty"` 1915 1916 // Type: The metric type, including its DNS name prefix. The type is not 1917 // URL-encoded. All user-defined metric types have the DNS name 1918 // `custom.googleapis.com` or `external.googleapis.com`. Metric types 1919 // should use a natural hierarchical grouping. For example: 1920 // "custom.googleapis.com/invoice/paid/amount" 1921 // "external.googleapis.com/prometheus/up" 1922 // "appengine.googleapis.com/http/server/response_latencies" 1923 Type string `json:"type,omitempty"` 1924 1925 // Unit: The units in which the metric value is reported. It is only 1926 // applicable if the `value_type` is `INT64`, `DOUBLE`, or 1927 // `DISTRIBUTION`. The `unit` defines the representation of the stored 1928 // metric values. Different systems might scale the values to be more 1929 // easily displayed (so a value of `0.02kBy` _might_ be displayed as 1930 // `20By`, and a value of `3523kBy` _might_ be displayed as `3.5MBy`). 1931 // However, if the `unit` is `kBy`, then the value of the metric is 1932 // always in thousands of bytes, no matter how it might be displayed. If 1933 // you want a custom metric to record the exact number of CPU-seconds 1934 // used by a job, you can create an `INT64 CUMULATIVE` metric whose 1935 // `unit` is `s{CPU}` (or equivalently `1s{CPU}` or just `s`). If the 1936 // job uses 12,005 CPU-seconds, then the value is written as `12005`. 1937 // Alternatively, if you want a custom metric to record data in a more 1938 // granular way, you can create a `DOUBLE CUMULATIVE` metric whose 1939 // `unit` is `ks{CPU}`, and then write the value `12.005` (which is 1940 // `12005/1000`), or use `Kis{CPU}` and write `11.723` (which is 1941 // `12005/1024`). The supported units are a subset of The Unified Code 1942 // for Units of Measure (https://unitsofmeasure.org/ucum.html) standard: 1943 // **Basic units (UNIT)** * `bit` bit * `By` byte * `s` second * `min` 1944 // minute * `h` hour * `d` day * `1` dimensionless **Prefixes (PREFIX)** 1945 // * `k` kilo (10^3) * `M` mega (10^6) * `G` giga (10^9) * `T` tera 1946 // (10^12) * `P` peta (10^15) * `E` exa (10^18) * `Z` zetta (10^21) * 1947 // `Y` yotta (10^24) * `m` milli (10^-3) * `u` micro (10^-6) * `n` nano 1948 // (10^-9) * `p` pico (10^-12) * `f` femto (10^-15) * `a` atto (10^-18) 1949 // * `z` zepto (10^-21) * `y` yocto (10^-24) * `Ki` kibi (2^10) * `Mi` 1950 // mebi (2^20) * `Gi` gibi (2^30) * `Ti` tebi (2^40) * `Pi` pebi (2^50) 1951 // **Grammar** The grammar also includes these connectors: * `/` 1952 // division or ratio (as an infix operator). For examples, `kBy/{email}` 1953 // or `MiBy/10ms` (although you should almost never have `/s` in a 1954 // metric `unit`; rates should always be computed at query time from the 1955 // underlying cumulative or delta value). * `.` multiplication or 1956 // composition (as an infix operator). For examples, `GBy.d` or 1957 // `k{watt}.h`. The grammar for a unit is as follows: Expression = 1958 // Component { "." Component } { "/" Component } ; Component = ( [ 1959 // PREFIX ] UNIT | "%" ) [ Annotation ] | Annotation | "1" ; Annotation 1960 // = "{" NAME "}" ; Notes: * `Annotation` is just a comment if it 1961 // follows a `UNIT`. If the annotation is used alone, then the unit is 1962 // equivalent to `1`. For examples, `{request}/s == 1/s`, 1963 // `By{transmitted}/s == By/s`. * `NAME` is a sequence of non-blank 1964 // printable ASCII characters not containing `{` or `}`. * `1` 1965 // represents a unitary dimensionless unit 1966 // (https://en.wikipedia.org/wiki/Dimensionless_quantity) of 1, such as 1967 // in `1/s`. It is typically used when none of the basic units are 1968 // appropriate. For example, "new users per day" can be represented as 1969 // `1/d` or `{new-users}/d` (and a metric value `5` would mean "5 new 1970 // users). Alternatively, "thousands of page views per day" would be 1971 // represented as `1000/d` or `k1/d` or `k{page_views}/d` (and a metric 1972 // value of `5.3` would mean "5300 page views per day"). * `%` 1973 // represents dimensionless value of 1/100, and annotates values giving 1974 // a percentage (so the metric values are typically in the range of 1975 // 0..100, and a metric value `3` means "3 percent"). * `10^2.%` 1976 // indicates a metric contains a ratio, typically in the range 0..1, 1977 // that will be multiplied by 100 and displayed as a percentage (so a 1978 // metric value `0.03` means "3 percent"). 1979 Unit string `json:"unit,omitempty"` 1980 1981 // ValueType: Whether the measurement is an integer, a floating-point 1982 // number, etc. Some combinations of `metric_kind` and `value_type` 1983 // might not be supported. 1984 // 1985 // Possible values: 1986 // "VALUE_TYPE_UNSPECIFIED" - Do not use this default value. 1987 // "BOOL" - The value is a boolean. This value type can be used only 1988 // if the metric kind is `GAUGE`. 1989 // "INT64" - The value is a signed 64-bit integer. 1990 // "DOUBLE" - The value is a double precision floating point number. 1991 // "STRING" - The value is a text string. This value type can be used 1992 // only if the metric kind is `GAUGE`. 1993 // "DISTRIBUTION" - The value is a `Distribution`. 1994 // "MONEY" - The value is money. 1995 ValueType string `json:"valueType,omitempty"` 1996 1997 // ForceSendFields is a list of field names (e.g. "Description") to 1998 // unconditionally include in API requests. By default, fields with 1999 // empty values are omitted from API requests. However, any non-pointer, 2000 // non-interface field appearing in ForceSendFields will be sent to the 2001 // server regardless of whether the field is empty or not. This may be 2002 // used to include empty fields in Patch requests. 2003 ForceSendFields []string `json:"-"` 2004 2005 // NullFields is a list of field names (e.g. "Description") to include 2006 // in API requests with the JSON null value. By default, fields with 2007 // empty values are omitted from API requests. However, any field with 2008 // an empty value appearing in NullFields will be sent to the server as 2009 // null. It is an error if a field in this list has a non-empty value. 2010 // This may be used to include null fields in Patch requests. 2011 NullFields []string `json:"-"` 2012} 2013 2014func (s *MetricDescriptor) MarshalJSON() ([]byte, error) { 2015 type NoMethod MetricDescriptor 2016 raw := NoMethod(*s) 2017 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2018} 2019 2020// MetricDescriptorMetadata: Additional annotations that can be used to 2021// guide the usage of a metric. 2022type MetricDescriptorMetadata struct { 2023 // IngestDelay: The delay of data points caused by ingestion. Data 2024 // points older than this age are guaranteed to be ingested and 2025 // available to be read, excluding data loss due to errors. 2026 IngestDelay string `json:"ingestDelay,omitempty"` 2027 2028 // LaunchStage: Deprecated. Must use the MetricDescriptor.launch_stage 2029 // instead. 2030 // 2031 // Possible values: 2032 // "LAUNCH_STAGE_UNSPECIFIED" - Do not use this default value. 2033 // "UNIMPLEMENTED" - The feature is not yet implemented. Users can not 2034 // use it. 2035 // "PRELAUNCH" - Prelaunch features are hidden from users and are only 2036 // visible internally. 2037 // "EARLY_ACCESS" - Early Access features are limited to a closed 2038 // group of testers. To use these features, you must sign up in advance 2039 // and sign a Trusted Tester agreement (which includes confidentiality 2040 // provisions). These features may be unstable, changed in 2041 // backward-incompatible ways, and are not guaranteed to be released. 2042 // "ALPHA" - Alpha is a limited availability test for releases before 2043 // they are cleared for widespread use. By Alpha, all significant design 2044 // issues are resolved and we are in the process of verifying 2045 // functionality. Alpha customers need to apply for access, agree to 2046 // applicable terms, and have their projects allowlisted. Alpha releases 2047 // don’t have to be feature complete, no SLAs are provided, and there 2048 // are no technical support obligations, but they will be far enough 2049 // along that customers can actually use them in test environments or 2050 // for limited-use tests -- just like they would in normal production 2051 // cases. 2052 // "BETA" - Beta is the point at which we are ready to open a release 2053 // for any customer to use. There are no SLA or technical support 2054 // obligations in a Beta release. Products will be complete from a 2055 // feature perspective, but may have some open outstanding issues. Beta 2056 // releases are suitable for limited production use cases. 2057 // "GA" - GA features are open to all developers and are considered 2058 // stable and fully qualified for production use. 2059 // "DEPRECATED" - Deprecated features are scheduled to be shut down 2060 // and removed. For more information, see the “Deprecation Policy” 2061 // section of our [Terms of Service](https://cloud.google.com/terms/) 2062 // and the [Google Cloud Platform Subject to the Deprecation 2063 // Policy](https://cloud.google.com/terms/deprecation) documentation. 2064 LaunchStage string `json:"launchStage,omitempty"` 2065 2066 // SamplePeriod: The sampling period of metric data points. For metrics 2067 // which are written periodically, consecutive data points are stored at 2068 // this time interval, excluding data loss due to errors. Metrics with a 2069 // higher granularity have a smaller sampling period. 2070 SamplePeriod string `json:"samplePeriod,omitempty"` 2071 2072 // ForceSendFields is a list of field names (e.g. "IngestDelay") to 2073 // unconditionally include in API requests. By default, fields with 2074 // empty values are omitted from API requests. However, any non-pointer, 2075 // non-interface field appearing in ForceSendFields will be sent to the 2076 // server regardless of whether the field is empty or not. This may be 2077 // used to include empty fields in Patch requests. 2078 ForceSendFields []string `json:"-"` 2079 2080 // NullFields is a list of field names (e.g. "IngestDelay") to include 2081 // in API requests with the JSON null value. By default, fields with 2082 // empty values are omitted from API requests. However, any field with 2083 // an empty value appearing in NullFields will be sent to the server as 2084 // null. It is an error if a field in this list has a non-empty value. 2085 // This may be used to include null fields in Patch requests. 2086 NullFields []string `json:"-"` 2087} 2088 2089func (s *MetricDescriptorMetadata) MarshalJSON() ([]byte, error) { 2090 type NoMethod MetricDescriptorMetadata 2091 raw := NoMethod(*s) 2092 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2093} 2094 2095// MetricRule: Bind API methods to metrics. Binding a method to a metric 2096// causes that metric's configured quota behaviors to apply to the 2097// method call. 2098type MetricRule struct { 2099 // MetricCosts: Metrics to update when the selected methods are called, 2100 // and the associated cost applied to each metric. The key of the map is 2101 // the metric name, and the values are the amount increased for the 2102 // metric against which the quota limits are defined. The value must not 2103 // be negative. 2104 MetricCosts map[string]string `json:"metricCosts,omitempty"` 2105 2106 // Selector: Selects the methods to which this rule applies. Refer to 2107 // selector for syntax details. 2108 Selector string `json:"selector,omitempty"` 2109 2110 // ForceSendFields is a list of field names (e.g. "MetricCosts") to 2111 // unconditionally include in API requests. By default, fields with 2112 // empty values are omitted from API requests. However, any non-pointer, 2113 // non-interface field appearing in ForceSendFields will be sent to the 2114 // server regardless of whether the field is empty or not. This may be 2115 // used to include empty fields in Patch requests. 2116 ForceSendFields []string `json:"-"` 2117 2118 // NullFields is a list of field names (e.g. "MetricCosts") to include 2119 // in API requests with the JSON null value. By default, fields with 2120 // empty values are omitted from API requests. However, any field with 2121 // an empty value appearing in NullFields will be sent to the server as 2122 // null. It is an error if a field in this list has a non-empty value. 2123 // This may be used to include null fields in Patch requests. 2124 NullFields []string `json:"-"` 2125} 2126 2127func (s *MetricRule) MarshalJSON() ([]byte, error) { 2128 type NoMethod MetricRule 2129 raw := NoMethod(*s) 2130 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2131} 2132 2133// Mixin: Declares an API Interface to be included in this interface. 2134// The including interface must redeclare all the methods from the 2135// included interface, but documentation and options are inherited as 2136// follows: - If after comment and whitespace stripping, the 2137// documentation string of the redeclared method is empty, it will be 2138// inherited from the original method. - Each annotation belonging to 2139// the service config (http, visibility) which is not set in the 2140// redeclared method will be inherited. - If an http annotation is 2141// inherited, the path pattern will be modified as follows. Any version 2142// prefix will be replaced by the version of the including interface 2143// plus the root path if specified. Example of a simple mixin: package 2144// google.acl.v1; service AccessControl { // Get the underlying ACL 2145// object. rpc GetAcl(GetAclRequest) returns (Acl) { option 2146// (google.api.http).get = "/v1/{resource=**}:getAcl"; } } package 2147// google.storage.v2; service Storage { // rpc GetAcl(GetAclRequest) 2148// returns (Acl); // Get a data record. rpc GetData(GetDataRequest) 2149// returns (Data) { option (google.api.http).get = "/v2/{resource=**}"; 2150// } } Example of a mixin configuration: apis: - name: 2151// google.storage.v2.Storage mixins: - name: google.acl.v1.AccessControl 2152// The mixin construct implies that all methods in `AccessControl` are 2153// also declared with same name and request/response types in `Storage`. 2154// A documentation generator or annotation processor will see the 2155// effective `Storage.GetAcl` method after inheriting documentation and 2156// annotations as follows: service Storage { // Get the underlying ACL 2157// object. rpc GetAcl(GetAclRequest) returns (Acl) { option 2158// (google.api.http).get = "/v2/{resource=**}:getAcl"; } ... } Note how 2159// the version in the path pattern changed from `v1` to `v2`. If the 2160// `root` field in the mixin is specified, it should be a relative path 2161// under which inherited HTTP paths are placed. Example: apis: - name: 2162// google.storage.v2.Storage mixins: - name: google.acl.v1.AccessControl 2163// root: acls This implies the following inherited HTTP annotation: 2164// service Storage { // Get the underlying ACL object. rpc 2165// GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = 2166// "/v2/acls/{resource=**}:getAcl"; } ... } 2167type Mixin struct { 2168 // Name: The fully qualified name of the interface which is included. 2169 Name string `json:"name,omitempty"` 2170 2171 // Root: If non-empty specifies a path under which inherited HTTP paths 2172 // are rooted. 2173 Root string `json:"root,omitempty"` 2174 2175 // ForceSendFields is a list of field names (e.g. "Name") to 2176 // unconditionally include in API requests. By default, fields with 2177 // empty values are omitted from API requests. However, any non-pointer, 2178 // non-interface field appearing in ForceSendFields will be sent to the 2179 // server regardless of whether the field is empty or not. This may be 2180 // used to include empty fields in Patch requests. 2181 ForceSendFields []string `json:"-"` 2182 2183 // NullFields is a list of field names (e.g. "Name") to include in API 2184 // requests with the JSON null value. By default, fields with empty 2185 // values are omitted from API requests. However, any field with an 2186 // empty value appearing in NullFields will be sent to the server as 2187 // null. It is an error if a field in this list has a non-empty value. 2188 // This may be used to include null fields in Patch requests. 2189 NullFields []string `json:"-"` 2190} 2191 2192func (s *Mixin) MarshalJSON() ([]byte, error) { 2193 type NoMethod Mixin 2194 raw := NoMethod(*s) 2195 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2196} 2197 2198// MonitoredResourceDescriptor: An object that describes the schema of a 2199// MonitoredResource object using a type name and a set of labels. For 2200// example, the monitored resource descriptor for Google Compute Engine 2201// VM instances has a type of "gce_instance" and specifies the use of 2202// the labels "instance_id" and "zone" to identify particular VM 2203// instances. Different APIs can support different monitored resource 2204// types. APIs generally provide a `list` method that returns the 2205// monitored resource descriptors used by the API. 2206type MonitoredResourceDescriptor struct { 2207 // Description: Optional. A detailed description of the monitored 2208 // resource type that might be used in documentation. 2209 Description string `json:"description,omitempty"` 2210 2211 // DisplayName: Optional. A concise name for the monitored resource type 2212 // that might be displayed in user interfaces. It should be a Title 2213 // Cased Noun Phrase, without any article or other determiners. For 2214 // example, "Google Cloud SQL Database". 2215 DisplayName string `json:"displayName,omitempty"` 2216 2217 // Labels: Required. A set of labels used to describe instances of this 2218 // monitored resource type. For example, an individual Google Cloud SQL 2219 // database is identified by values for the labels "database_id" and 2220 // "zone". 2221 Labels []*LabelDescriptor `json:"labels,omitempty"` 2222 2223 // LaunchStage: Optional. The launch stage of the monitored resource 2224 // definition. 2225 // 2226 // Possible values: 2227 // "LAUNCH_STAGE_UNSPECIFIED" - Do not use this default value. 2228 // "UNIMPLEMENTED" - The feature is not yet implemented. Users can not 2229 // use it. 2230 // "PRELAUNCH" - Prelaunch features are hidden from users and are only 2231 // visible internally. 2232 // "EARLY_ACCESS" - Early Access features are limited to a closed 2233 // group of testers. To use these features, you must sign up in advance 2234 // and sign a Trusted Tester agreement (which includes confidentiality 2235 // provisions). These features may be unstable, changed in 2236 // backward-incompatible ways, and are not guaranteed to be released. 2237 // "ALPHA" - Alpha is a limited availability test for releases before 2238 // they are cleared for widespread use. By Alpha, all significant design 2239 // issues are resolved and we are in the process of verifying 2240 // functionality. Alpha customers need to apply for access, agree to 2241 // applicable terms, and have their projects allowlisted. Alpha releases 2242 // don’t have to be feature complete, no SLAs are provided, and there 2243 // are no technical support obligations, but they will be far enough 2244 // along that customers can actually use them in test environments or 2245 // for limited-use tests -- just like they would in normal production 2246 // cases. 2247 // "BETA" - Beta is the point at which we are ready to open a release 2248 // for any customer to use. There are no SLA or technical support 2249 // obligations in a Beta release. Products will be complete from a 2250 // feature perspective, but may have some open outstanding issues. Beta 2251 // releases are suitable for limited production use cases. 2252 // "GA" - GA features are open to all developers and are considered 2253 // stable and fully qualified for production use. 2254 // "DEPRECATED" - Deprecated features are scheduled to be shut down 2255 // and removed. For more information, see the “Deprecation Policy” 2256 // section of our [Terms of Service](https://cloud.google.com/terms/) 2257 // and the [Google Cloud Platform Subject to the Deprecation 2258 // Policy](https://cloud.google.com/terms/deprecation) documentation. 2259 LaunchStage string `json:"launchStage,omitempty"` 2260 2261 // Name: Optional. The resource name of the monitored resource 2262 // descriptor: 2263 // "projects/{project_id}/monitoredResourceDescriptors/{type}" where 2264 // {type} is the value of the `type` field in this object and 2265 // {project_id} is a project ID that provides API-specific context for 2266 // accessing the type. APIs that do not use project information can use 2267 // the resource name format "monitoredResourceDescriptors/{type}". 2268 Name string `json:"name,omitempty"` 2269 2270 // Type: Required. The monitored resource type. For example, the type 2271 // "cloudsql_database" represents databases in Google Cloud SQL. 2272 Type string `json:"type,omitempty"` 2273 2274 // ForceSendFields is a list of field names (e.g. "Description") to 2275 // unconditionally include in API requests. By default, fields with 2276 // empty values are omitted from API requests. However, any non-pointer, 2277 // non-interface field appearing in ForceSendFields will be sent to the 2278 // server regardless of whether the field is empty or not. This may be 2279 // used to include empty fields in Patch requests. 2280 ForceSendFields []string `json:"-"` 2281 2282 // NullFields is a list of field names (e.g. "Description") to include 2283 // in API requests with the JSON null value. By default, fields with 2284 // empty values are omitted from API requests. However, any field with 2285 // an empty value appearing in NullFields will be sent to the server as 2286 // null. It is an error if a field in this list has a non-empty value. 2287 // This may be used to include null fields in Patch requests. 2288 NullFields []string `json:"-"` 2289} 2290 2291func (s *MonitoredResourceDescriptor) MarshalJSON() ([]byte, error) { 2292 type NoMethod MonitoredResourceDescriptor 2293 raw := NoMethod(*s) 2294 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2295} 2296 2297// Monitoring: Monitoring configuration of the service. The example 2298// below shows how to configure monitored resources and metrics for 2299// monitoring. In the example, a monitored resource and two metrics are 2300// defined. The `library.googleapis.com/book/returned_count` metric is 2301// sent to both producer and consumer projects, whereas the 2302// `library.googleapis.com/book/num_overdue` metric is only sent to the 2303// consumer project. monitored_resources: - type: 2304// library.googleapis.com/Branch display_name: "Library Branch" 2305// description: "A branch of a library." launch_stage: GA labels: - key: 2306// resource_container description: "The Cloud container (ie. project id) 2307// for the Branch." - key: location description: "The location of the 2308// library branch." - key: branch_id description: "The id of the 2309// branch." metrics: - name: library.googleapis.com/book/returned_count 2310// display_name: "Books Returned" description: "The count of books that 2311// have been returned." launch_stage: GA metric_kind: DELTA value_type: 2312// INT64 unit: "1" labels: - key: customer_id description: "The id of 2313// the customer." - name: library.googleapis.com/book/num_overdue 2314// display_name: "Books Overdue" description: "The current number of 2315// overdue books." launch_stage: GA metric_kind: GAUGE value_type: INT64 2316// unit: "1" labels: - key: customer_id description: "The id of the 2317// customer." monitoring: producer_destinations: - monitored_resource: 2318// library.googleapis.com/Branch metrics: - 2319// library.googleapis.com/book/returned_count consumer_destinations: - 2320// monitored_resource: library.googleapis.com/Branch metrics: - 2321// library.googleapis.com/book/returned_count - 2322// library.googleapis.com/book/num_overdue 2323type Monitoring struct { 2324 // ConsumerDestinations: Monitoring configurations for sending metrics 2325 // to the consumer project. There can be multiple consumer destinations. 2326 // A monitored resource type may appear in multiple monitoring 2327 // destinations if different aggregations are needed for different sets 2328 // of metrics associated with that monitored resource type. A monitored 2329 // resource and metric pair may only be used once in the Monitoring 2330 // configuration. 2331 ConsumerDestinations []*MonitoringDestination `json:"consumerDestinations,omitempty"` 2332 2333 // ProducerDestinations: Monitoring configurations for sending metrics 2334 // to the producer project. There can be multiple producer destinations. 2335 // A monitored resource type may appear in multiple monitoring 2336 // destinations if different aggregations are needed for different sets 2337 // of metrics associated with that monitored resource type. A monitored 2338 // resource and metric pair may only be used once in the Monitoring 2339 // configuration. 2340 ProducerDestinations []*MonitoringDestination `json:"producerDestinations,omitempty"` 2341 2342 // ForceSendFields is a list of field names (e.g. 2343 // "ConsumerDestinations") to unconditionally include in API requests. 2344 // By default, fields with empty values are omitted from API requests. 2345 // However, any non-pointer, non-interface field appearing in 2346 // ForceSendFields will be sent to the server regardless of whether the 2347 // field is empty or not. This may be used to include empty fields in 2348 // Patch requests. 2349 ForceSendFields []string `json:"-"` 2350 2351 // NullFields is a list of field names (e.g. "ConsumerDestinations") to 2352 // include in API requests with the JSON null value. By default, fields 2353 // with empty values are omitted from API requests. However, any field 2354 // with an empty value appearing in NullFields will be sent to the 2355 // server as null. It is an error if a field in this list has a 2356 // non-empty value. This may be used to include null fields in Patch 2357 // requests. 2358 NullFields []string `json:"-"` 2359} 2360 2361func (s *Monitoring) MarshalJSON() ([]byte, error) { 2362 type NoMethod Monitoring 2363 raw := NoMethod(*s) 2364 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2365} 2366 2367// MonitoringDestination: Configuration of a specific monitoring 2368// destination (the producer project or the consumer project). 2369type MonitoringDestination struct { 2370 // Metrics: Types of the metrics to report to this monitoring 2371 // destination. Each type must be defined in Service.metrics section. 2372 Metrics []string `json:"metrics,omitempty"` 2373 2374 // MonitoredResource: The monitored resource type. The type must be 2375 // defined in Service.monitored_resources section. 2376 MonitoredResource string `json:"monitoredResource,omitempty"` 2377 2378 // ForceSendFields is a list of field names (e.g. "Metrics") to 2379 // unconditionally include in API requests. By default, fields with 2380 // empty values are omitted from API requests. However, any non-pointer, 2381 // non-interface field appearing in ForceSendFields will be sent to the 2382 // server regardless of whether the field is empty or not. This may be 2383 // used to include empty fields in Patch requests. 2384 ForceSendFields []string `json:"-"` 2385 2386 // NullFields is a list of field names (e.g. "Metrics") to include in 2387 // API requests with the JSON null value. By default, fields with empty 2388 // values are omitted from API requests. However, any field with an 2389 // empty value appearing in NullFields will be sent to the server as 2390 // null. It is an error if a field in this list has a non-empty value. 2391 // This may be used to include null fields in Patch requests. 2392 NullFields []string `json:"-"` 2393} 2394 2395func (s *MonitoringDestination) MarshalJSON() ([]byte, error) { 2396 type NoMethod MonitoringDestination 2397 raw := NoMethod(*s) 2398 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2399} 2400 2401// OAuthRequirements: OAuth scopes are a way to define data and 2402// permissions on data. For example, there are scopes defined for 2403// "Read-only access to Google Calendar" and "Access to Cloud Platform". 2404// Users can consent to a scope for an application, giving it permission 2405// to access that data on their behalf. OAuth scope specifications 2406// should be fairly coarse grained; a user will need to see and 2407// understand the text description of what your scope means. In most 2408// cases: use one or at most two OAuth scopes for an entire family of 2409// products. If your product has multiple APIs, you should probably be 2410// sharing the OAuth scope across all of those APIs. When you need finer 2411// grained OAuth consent screens: talk with your product management 2412// about how developers will use them in practice. Please note that even 2413// though each of the canonical scopes is enough for a request to be 2414// accepted and passed to the backend, a request can still fail due to 2415// the backend requiring additional scopes or permissions. 2416type OAuthRequirements struct { 2417 // CanonicalScopes: The list of publicly documented OAuth scopes that 2418 // are allowed access. An OAuth token containing any of these scopes 2419 // will be accepted. Example: canonical_scopes: 2420 // https://www.googleapis.com/auth/calendar, 2421 // https://www.googleapis.com/auth/calendar.read 2422 CanonicalScopes string `json:"canonicalScopes,omitempty"` 2423 2424 // ForceSendFields is a list of field names (e.g. "CanonicalScopes") to 2425 // unconditionally include in API requests. By default, fields with 2426 // empty values are omitted from API requests. However, any non-pointer, 2427 // non-interface field appearing in ForceSendFields will be sent to the 2428 // server regardless of whether the field is empty or not. This may be 2429 // used to include empty fields in Patch requests. 2430 ForceSendFields []string `json:"-"` 2431 2432 // NullFields is a list of field names (e.g. "CanonicalScopes") to 2433 // include in API requests with the JSON null value. By default, fields 2434 // with empty values are omitted from API requests. However, any field 2435 // with an empty value appearing in NullFields will be sent to the 2436 // server as null. It is an error if a field in this list has a 2437 // non-empty value. This may be used to include null fields in Patch 2438 // requests. 2439 NullFields []string `json:"-"` 2440} 2441 2442func (s *OAuthRequirements) MarshalJSON() ([]byte, error) { 2443 type NoMethod OAuthRequirements 2444 raw := NoMethod(*s) 2445 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2446} 2447 2448// Operation: This resource represents a long-running operation that is 2449// the result of a network API call. 2450type Operation struct { 2451 // Done: If the value is `false`, it means the operation is still in 2452 // progress. If `true`, the operation is completed, and either `error` 2453 // or `response` is available. 2454 Done bool `json:"done,omitempty"` 2455 2456 // Error: The error result of the operation in case of failure or 2457 // cancellation. 2458 Error *Status `json:"error,omitempty"` 2459 2460 // Metadata: Service-specific metadata associated with the operation. It 2461 // typically contains progress information and common metadata such as 2462 // create time. Some services might not provide such metadata. Any 2463 // method that returns a long-running operation should document the 2464 // metadata type, if any. 2465 Metadata googleapi.RawMessage `json:"metadata,omitempty"` 2466 2467 // Name: The server-assigned name, which is only unique within the same 2468 // service that originally returns it. If you use the default HTTP 2469 // mapping, the `name` should be a resource name ending with 2470 // `operations/{unique_id}`. 2471 Name string `json:"name,omitempty"` 2472 2473 // Response: The normal response of the operation in case of success. If 2474 // the original method returns no data on success, such as `Delete`, the 2475 // response is `google.protobuf.Empty`. If the original method is 2476 // standard `Get`/`Create`/`Update`, the response should be the 2477 // resource. For other methods, the response should have the type 2478 // `XxxResponse`, where `Xxx` is the original method name. For example, 2479 // if the original method name is `TakeSnapshot()`, the inferred 2480 // response type is `TakeSnapshotResponse`. 2481 Response googleapi.RawMessage `json:"response,omitempty"` 2482 2483 // ServerResponse contains the HTTP response code and headers from the 2484 // server. 2485 googleapi.ServerResponse `json:"-"` 2486 2487 // ForceSendFields is a list of field names (e.g. "Done") to 2488 // unconditionally include in API requests. By default, fields with 2489 // empty values are omitted from API requests. However, any non-pointer, 2490 // non-interface field appearing in ForceSendFields will be sent to the 2491 // server regardless of whether the field is empty or not. This may be 2492 // used to include empty fields in Patch requests. 2493 ForceSendFields []string `json:"-"` 2494 2495 // NullFields is a list of field names (e.g. "Done") to include in API 2496 // requests with the JSON null value. By default, fields with empty 2497 // values are omitted from API requests. However, any field with an 2498 // empty value appearing in NullFields will be sent to the server as 2499 // null. It is an error if a field in this list has a non-empty value. 2500 // This may be used to include null fields in Patch requests. 2501 NullFields []string `json:"-"` 2502} 2503 2504func (s *Operation) MarshalJSON() ([]byte, error) { 2505 type NoMethod Operation 2506 raw := NoMethod(*s) 2507 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2508} 2509 2510// Option: A protocol buffer option, which can be attached to a message, 2511// field, enumeration, etc. 2512type Option struct { 2513 // Name: The option's name. For protobuf built-in options (options 2514 // defined in descriptor.proto), this is the short name. For example, 2515 // "map_entry". For custom options, it should be the fully-qualified 2516 // name. For example, "google.api.http". 2517 Name string `json:"name,omitempty"` 2518 2519 // Value: The option's value packed in an Any message. If the value is a 2520 // primitive, the corresponding wrapper type defined in 2521 // google/protobuf/wrappers.proto should be used. If the value is an 2522 // enum, it should be stored as an int32 value using the 2523 // google.protobuf.Int32Value type. 2524 Value googleapi.RawMessage `json:"value,omitempty"` 2525 2526 // ForceSendFields is a list of field names (e.g. "Name") to 2527 // unconditionally include in API requests. By default, fields with 2528 // empty values are omitted from API requests. However, any non-pointer, 2529 // non-interface field appearing in ForceSendFields will be sent to the 2530 // server regardless of whether the field is empty or not. This may be 2531 // used to include empty fields in Patch requests. 2532 ForceSendFields []string `json:"-"` 2533 2534 // NullFields is a list of field names (e.g. "Name") to include in API 2535 // requests with the JSON null value. By default, fields with empty 2536 // values are omitted from API requests. However, any field with an 2537 // empty value appearing in NullFields will be sent to the server as 2538 // null. It is an error if a field in this list has a non-empty value. 2539 // This may be used to include null fields in Patch requests. 2540 NullFields []string `json:"-"` 2541} 2542 2543func (s *Option) MarshalJSON() ([]byte, error) { 2544 type NoMethod Option 2545 raw := NoMethod(*s) 2546 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2547} 2548 2549// Page: Represents a documentation page. A page can contain subpages to 2550// represent nested documentation set structure. 2551type Page struct { 2552 // Content: The Markdown content of the page. You can use (== include 2553 // {path} ==) to include content from a Markdown file. 2554 Content string `json:"content,omitempty"` 2555 2556 // Name: The name of the page. It will be used as an identity of the 2557 // page to generate URI of the page, text of the link to this page in 2558 // navigation, etc. The full page name (start from the root page name to 2559 // this page concatenated with `.`) can be used as reference to the page 2560 // in your documentation. For example: pages: - name: Tutorial content: 2561 // (== include tutorial.md ==) subpages: - name: Java content: (== 2562 // include tutorial_java.md ==) You can reference `Java` page using 2563 // Markdown reference link syntax: `Java`. 2564 Name string `json:"name,omitempty"` 2565 2566 // Subpages: Subpages of this page. The order of subpages specified here 2567 // will be honored in the generated docset. 2568 Subpages []*Page `json:"subpages,omitempty"` 2569 2570 // ForceSendFields is a list of field names (e.g. "Content") to 2571 // unconditionally include in API requests. By default, fields with 2572 // empty values are omitted from API requests. However, any non-pointer, 2573 // non-interface field appearing in ForceSendFields will be sent to the 2574 // server regardless of whether the field is empty or not. This may be 2575 // used to include empty fields in Patch requests. 2576 ForceSendFields []string `json:"-"` 2577 2578 // NullFields is a list of field names (e.g. "Content") to include in 2579 // API requests with the JSON null value. By default, fields with empty 2580 // values are omitted from API requests. However, any field with an 2581 // empty value appearing in NullFields will be sent to the server as 2582 // null. It is an error if a field in this list has a non-empty value. 2583 // This may be used to include null fields in Patch requests. 2584 NullFields []string `json:"-"` 2585} 2586 2587func (s *Page) MarshalJSON() ([]byte, error) { 2588 type NoMethod Page 2589 raw := NoMethod(*s) 2590 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2591} 2592 2593// Quota: Quota configuration helps to achieve fairness and budgeting in 2594// service usage. The metric based quota configuration works this way: - 2595// The service configuration defines a set of metrics. - For API calls, 2596// the quota.metric_rules maps methods to metrics with corresponding 2597// costs. - The quota.limits defines limits on the metrics, which will 2598// be used for quota checks at runtime. An example quota configuration 2599// in yaml format: quota: limits: - name: apiWriteQpsPerProject metric: 2600// library.googleapis.com/write_calls unit: "1/min/{project}" # rate 2601// limit for consumer projects values: STANDARD: 10000 # The metric 2602// rules bind all methods to the read_calls metric, # except for the 2603// UpdateBook and DeleteBook methods. These two methods # are mapped to 2604// the write_calls metric, with the UpdateBook method # consuming at 2605// twice rate as the DeleteBook method. metric_rules: - selector: "*" 2606// metric_costs: library.googleapis.com/read_calls: 1 - selector: 2607// google.example.library.v1.LibraryService.UpdateBook metric_costs: 2608// library.googleapis.com/write_calls: 2 - selector: 2609// google.example.library.v1.LibraryService.DeleteBook metric_costs: 2610// library.googleapis.com/write_calls: 1 Corresponding Metric 2611// definition: metrics: - name: library.googleapis.com/read_calls 2612// display_name: Read requests metric_kind: DELTA value_type: INT64 - 2613// name: library.googleapis.com/write_calls display_name: Write requests 2614// metric_kind: DELTA value_type: INT64 2615type Quota struct { 2616 // Limits: List of `QuotaLimit` definitions for the service. 2617 Limits []*QuotaLimit `json:"limits,omitempty"` 2618 2619 // MetricRules: List of `MetricRule` definitions, each one mapping a 2620 // selected method to one or more metrics. 2621 MetricRules []*MetricRule `json:"metricRules,omitempty"` 2622 2623 // ForceSendFields is a list of field names (e.g. "Limits") to 2624 // unconditionally include in API requests. By default, fields with 2625 // empty values are omitted from API requests. However, any non-pointer, 2626 // non-interface field appearing in ForceSendFields will be sent to the 2627 // server regardless of whether the field is empty or not. This may be 2628 // used to include empty fields in Patch requests. 2629 ForceSendFields []string `json:"-"` 2630 2631 // NullFields is a list of field names (e.g. "Limits") to include in API 2632 // requests with the JSON null value. By default, fields with empty 2633 // values are omitted from API requests. However, any field with an 2634 // empty value appearing in NullFields will be sent to the server as 2635 // null. It is an error if a field in this list has a non-empty value. 2636 // This may be used to include null fields in Patch requests. 2637 NullFields []string `json:"-"` 2638} 2639 2640func (s *Quota) MarshalJSON() ([]byte, error) { 2641 type NoMethod Quota 2642 raw := NoMethod(*s) 2643 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2644} 2645 2646// QuotaLimit: `QuotaLimit` defines a specific limit that applies over a 2647// specified duration for a limit type. There can be at most one limit 2648// for a duration and limit type combination defined within a 2649// `QuotaGroup`. 2650type QuotaLimit struct { 2651 // DefaultLimit: Default number of tokens that can be consumed during 2652 // the specified duration. This is the number of tokens assigned when a 2653 // client application developer activates the service for his/her 2654 // project. Specifying a value of 0 will block all requests. This can be 2655 // used if you are provisioning quota to selected consumers and blocking 2656 // others. Similarly, a value of -1 will indicate an unlimited quota. No 2657 // other negative values are allowed. Used by group-based quotas only. 2658 DefaultLimit int64 `json:"defaultLimit,omitempty,string"` 2659 2660 // Description: Optional. User-visible, extended description for this 2661 // quota limit. Should be used only when more context is needed to 2662 // understand this limit than provided by the limit's display name (see: 2663 // `display_name`). 2664 Description string `json:"description,omitempty"` 2665 2666 // DisplayName: User-visible display name for this limit. Optional. If 2667 // not set, the UI will provide a default display name based on the 2668 // quota configuration. This field can be used to override the default 2669 // display name generated from the configuration. 2670 DisplayName string `json:"displayName,omitempty"` 2671 2672 // Duration: Duration of this limit in textual notation. Must be "100s" 2673 // or "1d". Used by group-based quotas only. 2674 Duration string `json:"duration,omitempty"` 2675 2676 // FreeTier: Free tier value displayed in the Developers Console for 2677 // this limit. The free tier is the number of tokens that will be 2678 // subtracted from the billed amount when billing is enabled. This field 2679 // can only be set on a limit with duration "1d", in a billable group; 2680 // it is invalid on any other limit. If this field is not set, it 2681 // defaults to 0, indicating that there is no free tier for this 2682 // service. Used by group-based quotas only. 2683 FreeTier int64 `json:"freeTier,omitempty,string"` 2684 2685 // MaxLimit: Maximum number of tokens that can be consumed during the 2686 // specified duration. Client application developers can override the 2687 // default limit up to this maximum. If specified, this value cannot be 2688 // set to a value less than the default limit. If not specified, it is 2689 // set to the default limit. To allow clients to apply overrides with no 2690 // upper bound, set this to -1, indicating unlimited maximum quota. Used 2691 // by group-based quotas only. 2692 MaxLimit int64 `json:"maxLimit,omitempty,string"` 2693 2694 // Metric: The name of the metric this quota limit applies to. The quota 2695 // limits with the same metric will be checked together during runtime. 2696 // The metric must be defined within the service config. 2697 Metric string `json:"metric,omitempty"` 2698 2699 // Name: Name of the quota limit. The name must be provided, and it must 2700 // be unique within the service. The name can only include alphanumeric 2701 // characters as well as '-'. The maximum length of the limit name is 64 2702 // characters. 2703 Name string `json:"name,omitempty"` 2704 2705 // Unit: Specify the unit of the quota limit. It uses the same syntax as 2706 // Metric.unit. The supported unit kinds are determined by the quota 2707 // backend system. Here are some examples: * "1/min/{project}" for quota 2708 // per minute per project. Note: the order of unit components is 2709 // insignificant. The "1" at the beginning is required to follow the 2710 // metric unit syntax. 2711 Unit string `json:"unit,omitempty"` 2712 2713 // Values: Tiered limit values. You must specify this as a key:value 2714 // pair, with an integer value that is the maximum number of requests 2715 // allowed for the specified unit. Currently only STANDARD is supported. 2716 Values map[string]string `json:"values,omitempty"` 2717 2718 // ForceSendFields is a list of field names (e.g. "DefaultLimit") to 2719 // unconditionally include in API requests. By default, fields with 2720 // empty values are omitted from API requests. However, any non-pointer, 2721 // non-interface field appearing in ForceSendFields will be sent to the 2722 // server regardless of whether the field is empty or not. This may be 2723 // used to include empty fields in Patch requests. 2724 ForceSendFields []string `json:"-"` 2725 2726 // NullFields is a list of field names (e.g. "DefaultLimit") to include 2727 // in API requests with the JSON null value. By default, fields with 2728 // empty values are omitted from API requests. However, any field with 2729 // an empty value appearing in NullFields will be sent to the server as 2730 // null. It is an error if a field in this list has a non-empty value. 2731 // This may be used to include null fields in Patch requests. 2732 NullFields []string `json:"-"` 2733} 2734 2735func (s *QuotaLimit) MarshalJSON() ([]byte, error) { 2736 type NoMethod QuotaLimit 2737 raw := NoMethod(*s) 2738 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2739} 2740 2741// Service: `Service` is the root object of Google API service 2742// configuration (service config). It describes the basic information 2743// about a logical service, such as the service name and the user-facing 2744// title, and delegates other aspects to sub-sections. Each sub-section 2745// is either a proto message or a repeated proto message that configures 2746// a specific aspect, such as auth. For more information, see each proto 2747// message definition. Example: type: google.api.Service name: 2748// calendar.googleapis.com title: Google Calendar API apis: - name: 2749// google.calendar.v3.Calendar visibility: rules: - selector: 2750// "google.calendar.v3.*" restriction: PREVIEW backend: rules: - 2751// selector: "google.calendar.v3.*" address: calendar.example.com 2752// authentication: providers: - id: google_calendar_auth jwks_uri: 2753// https://www.googleapis.com/oauth2/v1/certs issuer: 2754// https://securetoken.google.com rules: - selector: "*" requirements: 2755// provider_id: google_calendar_auth 2756type Service struct { 2757 // Apis: A list of API interfaces exported by this service. Only the 2758 // `name` field of the google.protobuf.Api needs to be provided by the 2759 // configuration author, as the remaining fields will be derived from 2760 // the IDL during the normalization process. It is an error to specify 2761 // an API interface here which cannot be resolved against the associated 2762 // IDL files. 2763 Apis []*Api `json:"apis,omitempty"` 2764 2765 // Authentication: Auth configuration. 2766 Authentication *Authentication `json:"authentication,omitempty"` 2767 2768 // Backend: API backend configuration. 2769 Backend *Backend `json:"backend,omitempty"` 2770 2771 // Billing: Billing configuration. 2772 Billing *Billing `json:"billing,omitempty"` 2773 2774 // ConfigVersion: Obsolete. Do not use. This field has no semantic 2775 // meaning. The service config compiler always sets this field to `3`. 2776 ConfigVersion int64 `json:"configVersion,omitempty"` 2777 2778 // Context: Context configuration. 2779 Context *Context `json:"context,omitempty"` 2780 2781 // Control: Configuration for the service control plane. 2782 Control *Control `json:"control,omitempty"` 2783 2784 // CustomError: Custom error configuration. 2785 CustomError *CustomError `json:"customError,omitempty"` 2786 2787 // Documentation: Additional API documentation. 2788 Documentation *Documentation `json:"documentation,omitempty"` 2789 2790 // Endpoints: Configuration for network endpoints. If this is empty, 2791 // then an endpoint with the same name as the service is automatically 2792 // generated to service all defined APIs. 2793 Endpoints []*Endpoint `json:"endpoints,omitempty"` 2794 2795 // Enums: A list of all enum types included in this API service. Enums 2796 // referenced directly or indirectly by the `apis` are automatically 2797 // included. Enums which are not referenced but shall be included should 2798 // be listed here by name. Example: enums: - name: 2799 // google.someapi.v1.SomeEnum 2800 Enums []*Enum `json:"enums,omitempty"` 2801 2802 // Http: HTTP configuration. 2803 Http *Http `json:"http,omitempty"` 2804 2805 // Id: A unique ID for a specific instance of this message, typically 2806 // assigned by the client for tracking purpose. Must be no longer than 2807 // 63 characters and only lower case letters, digits, '.', '_' and '-' 2808 // are allowed. If empty, the server may choose to generate one instead. 2809 Id string `json:"id,omitempty"` 2810 2811 // Logging: Logging configuration. 2812 Logging *Logging `json:"logging,omitempty"` 2813 2814 // Logs: Defines the logs used by this service. 2815 Logs []*LogDescriptor `json:"logs,omitempty"` 2816 2817 // Metrics: Defines the metrics used by this service. 2818 Metrics []*MetricDescriptor `json:"metrics,omitempty"` 2819 2820 // MonitoredResources: Defines the monitored resources used by this 2821 // service. This is required by the Service.monitoring and 2822 // Service.logging configurations. 2823 MonitoredResources []*MonitoredResourceDescriptor `json:"monitoredResources,omitempty"` 2824 2825 // Monitoring: Monitoring configuration. 2826 Monitoring *Monitoring `json:"monitoring,omitempty"` 2827 2828 // Name: The service name, which is a DNS-like logical identifier for 2829 // the service, such as `calendar.googleapis.com`. The service name 2830 // typically goes through DNS verification to make sure the owner of the 2831 // service also owns the DNS name. 2832 Name string `json:"name,omitempty"` 2833 2834 // ProducerProjectId: The Google project that owns this service. 2835 ProducerProjectId string `json:"producerProjectId,omitempty"` 2836 2837 // Quota: Quota configuration. 2838 Quota *Quota `json:"quota,omitempty"` 2839 2840 // SourceInfo: Output only. The source information for this 2841 // configuration if available. 2842 SourceInfo *SourceInfo `json:"sourceInfo,omitempty"` 2843 2844 // SystemParameters: System parameter configuration. 2845 SystemParameters *SystemParameters `json:"systemParameters,omitempty"` 2846 2847 // SystemTypes: A list of all proto message types included in this API 2848 // service. It serves similar purpose as [google.api.Service.types], 2849 // except that these types are not needed by user-defined APIs. 2850 // Therefore, they will not show up in the generated discovery doc. This 2851 // field should only be used to define system APIs in ESF. 2852 SystemTypes []*Type `json:"systemTypes,omitempty"` 2853 2854 // Title: The product title for this service. 2855 Title string `json:"title,omitempty"` 2856 2857 // Types: A list of all proto message types included in this API 2858 // service. Types referenced directly or indirectly by the `apis` are 2859 // automatically included. Messages which are not referenced but shall 2860 // be included, such as types used by the `google.protobuf.Any` type, 2861 // should be listed here by name. Example: types: - name: 2862 // google.protobuf.Int32 2863 Types []*Type `json:"types,omitempty"` 2864 2865 // Usage: Configuration controlling usage of this service. 2866 Usage *Usage `json:"usage,omitempty"` 2867 2868 // ForceSendFields is a list of field names (e.g. "Apis") to 2869 // unconditionally include in API requests. By default, fields with 2870 // empty values are omitted from API requests. However, any non-pointer, 2871 // non-interface field appearing in ForceSendFields will be sent to the 2872 // server regardless of whether the field is empty or not. This may be 2873 // used to include empty fields in Patch requests. 2874 ForceSendFields []string `json:"-"` 2875 2876 // NullFields is a list of field names (e.g. "Apis") to include in API 2877 // requests with the JSON null value. By default, fields with empty 2878 // values are omitted from API requests. However, any field with an 2879 // empty value appearing in NullFields will be sent to the server as 2880 // null. It is an error if a field in this list has a non-empty value. 2881 // This may be used to include null fields in Patch requests. 2882 NullFields []string `json:"-"` 2883} 2884 2885func (s *Service) MarshalJSON() ([]byte, error) { 2886 type NoMethod Service 2887 raw := NoMethod(*s) 2888 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2889} 2890 2891// SourceContext: `SourceContext` represents information about the 2892// source of a protobuf element, like the file in which it is defined. 2893type SourceContext struct { 2894 // FileName: The path-qualified name of the .proto file that contained 2895 // the associated protobuf element. For example: 2896 // "google/protobuf/source_context.proto". 2897 FileName string `json:"fileName,omitempty"` 2898 2899 // ForceSendFields is a list of field names (e.g. "FileName") to 2900 // unconditionally include in API requests. By default, fields with 2901 // empty values are omitted from API requests. However, any non-pointer, 2902 // non-interface field appearing in ForceSendFields will be sent to the 2903 // server regardless of whether the field is empty or not. This may be 2904 // used to include empty fields in Patch requests. 2905 ForceSendFields []string `json:"-"` 2906 2907 // NullFields is a list of field names (e.g. "FileName") to include in 2908 // API requests with the JSON null value. By default, fields with empty 2909 // values are omitted from API requests. However, any field with an 2910 // empty value appearing in NullFields will be sent to the server as 2911 // null. It is an error if a field in this list has a non-empty value. 2912 // This may be used to include null fields in Patch requests. 2913 NullFields []string `json:"-"` 2914} 2915 2916func (s *SourceContext) MarshalJSON() ([]byte, error) { 2917 type NoMethod SourceContext 2918 raw := NoMethod(*s) 2919 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2920} 2921 2922// SourceInfo: Source information used to create a Service Config 2923type SourceInfo struct { 2924 // SourceFiles: All files used during config generation. 2925 SourceFiles []googleapi.RawMessage `json:"sourceFiles,omitempty"` 2926 2927 // ForceSendFields is a list of field names (e.g. "SourceFiles") to 2928 // unconditionally include in API requests. By default, fields with 2929 // empty values are omitted from API requests. However, any non-pointer, 2930 // non-interface field appearing in ForceSendFields will be sent to the 2931 // server regardless of whether the field is empty or not. This may be 2932 // used to include empty fields in Patch requests. 2933 ForceSendFields []string `json:"-"` 2934 2935 // NullFields is a list of field names (e.g. "SourceFiles") to include 2936 // in API requests with the JSON null value. By default, fields with 2937 // empty values are omitted from API requests. However, any field with 2938 // an empty value appearing in NullFields will be sent to the server as 2939 // null. It is an error if a field in this list has a non-empty value. 2940 // This may be used to include null fields in Patch requests. 2941 NullFields []string `json:"-"` 2942} 2943 2944func (s *SourceInfo) MarshalJSON() ([]byte, error) { 2945 type NoMethod SourceInfo 2946 raw := NoMethod(*s) 2947 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2948} 2949 2950// Status: The `Status` type defines a logical error model that is 2951// suitable for different programming environments, including REST APIs 2952// and RPC APIs. It is used by gRPC (https://github.com/grpc). Each 2953// `Status` message contains three pieces of data: error code, error 2954// message, and error details. You can find out more about this error 2955// model and how to work with it in the API Design Guide 2956// (https://cloud.google.com/apis/design/errors). 2957type Status struct { 2958 // Code: The status code, which should be an enum value of 2959 // google.rpc.Code. 2960 Code int64 `json:"code,omitempty"` 2961 2962 // Details: A list of messages that carry the error details. There is a 2963 // common set of message types for APIs to use. 2964 Details []googleapi.RawMessage `json:"details,omitempty"` 2965 2966 // Message: A developer-facing error message, which should be in 2967 // English. Any user-facing error message should be localized and sent 2968 // in the google.rpc.Status.details field, or localized by the client. 2969 Message string `json:"message,omitempty"` 2970 2971 // ForceSendFields is a list of field names (e.g. "Code") to 2972 // unconditionally include in API requests. By default, fields with 2973 // empty values are omitted from API requests. However, any non-pointer, 2974 // non-interface field appearing in ForceSendFields will be sent to the 2975 // server regardless of whether the field is empty or not. This may be 2976 // used to include empty fields in Patch requests. 2977 ForceSendFields []string `json:"-"` 2978 2979 // NullFields is a list of field names (e.g. "Code") to include in API 2980 // requests with the JSON null value. By default, fields with empty 2981 // values are omitted from API requests. However, any field with an 2982 // empty value appearing in NullFields will be sent to the server as 2983 // null. It is an error if a field in this list has a non-empty value. 2984 // This may be used to include null fields in Patch requests. 2985 NullFields []string `json:"-"` 2986} 2987 2988func (s *Status) MarshalJSON() ([]byte, error) { 2989 type NoMethod Status 2990 raw := NoMethod(*s) 2991 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2992} 2993 2994// SystemParameter: Define a parameter's name and location. The 2995// parameter may be passed as either an HTTP header or a URL query 2996// parameter, and if both are passed the behavior is 2997// implementation-dependent. 2998type SystemParameter struct { 2999 // HttpHeader: Define the HTTP header name to use for the parameter. It 3000 // is case insensitive. 3001 HttpHeader string `json:"httpHeader,omitempty"` 3002 3003 // Name: Define the name of the parameter, such as "api_key" . It is 3004 // case sensitive. 3005 Name string `json:"name,omitempty"` 3006 3007 // UrlQueryParameter: Define the URL query parameter name to use for the 3008 // parameter. It is case sensitive. 3009 UrlQueryParameter string `json:"urlQueryParameter,omitempty"` 3010 3011 // ForceSendFields is a list of field names (e.g. "HttpHeader") to 3012 // unconditionally include in API requests. By default, fields with 3013 // empty values are omitted from API requests. However, any non-pointer, 3014 // non-interface field appearing in ForceSendFields will be sent to the 3015 // server regardless of whether the field is empty or not. This may be 3016 // used to include empty fields in Patch requests. 3017 ForceSendFields []string `json:"-"` 3018 3019 // NullFields is a list of field names (e.g. "HttpHeader") to include in 3020 // API requests with the JSON null value. By default, fields with empty 3021 // values are omitted from API requests. However, any field with an 3022 // empty value appearing in NullFields will be sent to the server as 3023 // null. It is an error if a field in this list has a non-empty value. 3024 // This may be used to include null fields in Patch requests. 3025 NullFields []string `json:"-"` 3026} 3027 3028func (s *SystemParameter) MarshalJSON() ([]byte, error) { 3029 type NoMethod SystemParameter 3030 raw := NoMethod(*s) 3031 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3032} 3033 3034// SystemParameterRule: Define a system parameter rule mapping system 3035// parameter definitions to methods. 3036type SystemParameterRule struct { 3037 // Parameters: Define parameters. Multiple names may be defined for a 3038 // parameter. For a given method call, only one of them should be used. 3039 // If multiple names are used the behavior is implementation-dependent. 3040 // If none of the specified names are present the behavior is 3041 // parameter-dependent. 3042 Parameters []*SystemParameter `json:"parameters,omitempty"` 3043 3044 // Selector: Selects the methods to which this rule applies. Use '*' to 3045 // indicate all methods in all APIs. Refer to selector for syntax 3046 // details. 3047 Selector string `json:"selector,omitempty"` 3048 3049 // ForceSendFields is a list of field names (e.g. "Parameters") to 3050 // unconditionally include in API requests. By default, fields with 3051 // empty values are omitted from API requests. However, any non-pointer, 3052 // non-interface field appearing in ForceSendFields will be sent to the 3053 // server regardless of whether the field is empty or not. This may be 3054 // used to include empty fields in Patch requests. 3055 ForceSendFields []string `json:"-"` 3056 3057 // NullFields is a list of field names (e.g. "Parameters") to include in 3058 // API requests with the JSON null value. By default, fields with empty 3059 // values are omitted from API requests. However, any field with an 3060 // empty value appearing in NullFields will be sent to the server as 3061 // null. It is an error if a field in this list has a non-empty value. 3062 // This may be used to include null fields in Patch requests. 3063 NullFields []string `json:"-"` 3064} 3065 3066func (s *SystemParameterRule) MarshalJSON() ([]byte, error) { 3067 type NoMethod SystemParameterRule 3068 raw := NoMethod(*s) 3069 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3070} 3071 3072// SystemParameters: ### System parameter configuration A system 3073// parameter is a special kind of parameter defined by the API system, 3074// not by an individual API. It is typically mapped to an HTTP header 3075// and/or a URL query parameter. This configuration specifies which 3076// methods change the names of the system parameters. 3077type SystemParameters struct { 3078 // Rules: Define system parameters. The parameters defined here will 3079 // override the default parameters implemented by the system. If this 3080 // field is missing from the service config, default system parameters 3081 // will be used. Default system parameters and names is 3082 // implementation-dependent. Example: define api key for all methods 3083 // system_parameters rules: - selector: "*" parameters: - name: api_key 3084 // url_query_parameter: api_key Example: define 2 api key names for a 3085 // specific method. system_parameters rules: - selector: "/ListShelves" 3086 // parameters: - name: api_key http_header: Api-Key1 - name: api_key 3087 // http_header: Api-Key2 **NOTE:** All service configuration rules 3088 // follow "last one wins" order. 3089 Rules []*SystemParameterRule `json:"rules,omitempty"` 3090 3091 // ForceSendFields is a list of field names (e.g. "Rules") to 3092 // unconditionally include in API requests. By default, fields with 3093 // empty values are omitted from API requests. However, any non-pointer, 3094 // non-interface field appearing in ForceSendFields will be sent to the 3095 // server regardless of whether the field is empty or not. This may be 3096 // used to include empty fields in Patch requests. 3097 ForceSendFields []string `json:"-"` 3098 3099 // NullFields is a list of field names (e.g. "Rules") to include in API 3100 // requests with the JSON null value. By default, fields with empty 3101 // values are omitted from API requests. However, any field with an 3102 // empty value appearing in NullFields will be sent to the server as 3103 // null. It is an error if a field in this list has a non-empty value. 3104 // This may be used to include null fields in Patch requests. 3105 NullFields []string `json:"-"` 3106} 3107 3108func (s *SystemParameters) MarshalJSON() ([]byte, error) { 3109 type NoMethod SystemParameters 3110 raw := NoMethod(*s) 3111 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3112} 3113 3114// Type: A protocol buffer message type. 3115type Type struct { 3116 // Fields: The list of fields. 3117 Fields []*Field `json:"fields,omitempty"` 3118 3119 // Name: The fully qualified message name. 3120 Name string `json:"name,omitempty"` 3121 3122 // Oneofs: The list of types appearing in `oneof` definitions in this 3123 // type. 3124 Oneofs []string `json:"oneofs,omitempty"` 3125 3126 // Options: The protocol buffer options. 3127 Options []*Option `json:"options,omitempty"` 3128 3129 // SourceContext: The source context. 3130 SourceContext *SourceContext `json:"sourceContext,omitempty"` 3131 3132 // Syntax: The source syntax. 3133 // 3134 // Possible values: 3135 // "SYNTAX_PROTO2" - Syntax `proto2`. 3136 // "SYNTAX_PROTO3" - Syntax `proto3`. 3137 Syntax string `json:"syntax,omitempty"` 3138 3139 // ForceSendFields is a list of field names (e.g. "Fields") to 3140 // unconditionally include in API requests. By default, fields with 3141 // empty values are omitted from API requests. However, any non-pointer, 3142 // non-interface field appearing in ForceSendFields will be sent to the 3143 // server regardless of whether the field is empty or not. This may be 3144 // used to include empty fields in Patch requests. 3145 ForceSendFields []string `json:"-"` 3146 3147 // NullFields is a list of field names (e.g. "Fields") to include in API 3148 // requests with the JSON null value. By default, fields with empty 3149 // values are omitted from API requests. However, any field with an 3150 // empty value appearing in NullFields will be sent to the server as 3151 // null. It is an error if a field in this list has a non-empty value. 3152 // This may be used to include null fields in Patch requests. 3153 NullFields []string `json:"-"` 3154} 3155 3156func (s *Type) MarshalJSON() ([]byte, error) { 3157 type NoMethod Type 3158 raw := NoMethod(*s) 3159 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3160} 3161 3162// Usage: Configuration controlling usage of a service. 3163type Usage struct { 3164 // ProducerNotificationChannel: The full resource name of a channel used 3165 // for sending notifications to the service producer. Google Service 3166 // Management currently only supports Google Cloud Pub/Sub 3167 // (https://cloud.google.com/pubsub) as a notification channel. To use 3168 // Google Cloud Pub/Sub as the channel, this must be the name of a Cloud 3169 // Pub/Sub topic that uses the Cloud Pub/Sub topic name format 3170 // documented in https://cloud.google.com/pubsub/docs/overview. 3171 ProducerNotificationChannel string `json:"producerNotificationChannel,omitempty"` 3172 3173 // Requirements: Requirements that must be satisfied before a consumer 3174 // project can use the service. Each requirement is of the form /; for 3175 // example 'serviceusage.googleapis.com/billing-enabled'. For Google 3176 // APIs, a Terms of Service requirement must be included here. Google 3177 // Cloud APIs must include "serviceusage.googleapis.com/tos/cloud". 3178 // Other Google APIs should include 3179 // "serviceusage.googleapis.com/tos/universal". Additional ToS can be 3180 // included based on the business needs. 3181 Requirements []string `json:"requirements,omitempty"` 3182 3183 // Rules: A list of usage rules that apply to individual API methods. 3184 // **NOTE:** All service configuration rules follow "last one wins" 3185 // order. 3186 Rules []*UsageRule `json:"rules,omitempty"` 3187 3188 // ForceSendFields is a list of field names (e.g. 3189 // "ProducerNotificationChannel") to unconditionally include in API 3190 // requests. By default, fields with empty values are omitted from API 3191 // requests. However, any non-pointer, non-interface field appearing in 3192 // ForceSendFields will be sent to the server regardless of whether the 3193 // field is empty or not. This may be used to include empty fields in 3194 // Patch requests. 3195 ForceSendFields []string `json:"-"` 3196 3197 // NullFields is a list of field names (e.g. 3198 // "ProducerNotificationChannel") to include in API requests with the 3199 // JSON null value. By default, fields with empty values are omitted 3200 // from API requests. However, any field with an empty value appearing 3201 // in NullFields will be sent to the server as null. It is an error if a 3202 // field in this list has a non-empty value. This may be used to include 3203 // null fields in Patch requests. 3204 NullFields []string `json:"-"` 3205} 3206 3207func (s *Usage) MarshalJSON() ([]byte, error) { 3208 type NoMethod Usage 3209 raw := NoMethod(*s) 3210 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3211} 3212 3213// UsageRule: Usage configuration rules for the service. NOTE: Under 3214// development. Use this rule to configure unregistered calls for the 3215// service. Unregistered calls are calls that do not contain consumer 3216// project identity. (Example: calls that do not contain an API key). By 3217// default, API methods do not allow unregistered calls, and each method 3218// call must be identified by a consumer project identity. Use this rule 3219// to allow/disallow unregistered calls. Example of an API that wants to 3220// allow unregistered calls for entire service. usage: rules: - 3221// selector: "*" allow_unregistered_calls: true Example of a method that 3222// wants to allow unregistered calls. usage: rules: - selector: 3223// "google.example.library.v1.LibraryService.CreateBook" 3224// allow_unregistered_calls: true 3225type UsageRule struct { 3226 // AllowUnregisteredCalls: If true, the selected method allows 3227 // unregistered calls, e.g. calls that don't identify any user or 3228 // application. 3229 AllowUnregisteredCalls bool `json:"allowUnregisteredCalls,omitempty"` 3230 3231 // Selector: Selects the methods to which this rule applies. Use '*' to 3232 // indicate all methods in all APIs. Refer to selector for syntax 3233 // details. 3234 Selector string `json:"selector,omitempty"` 3235 3236 // SkipServiceControl: If true, the selected method should skip service 3237 // control and the control plane features, such as quota and billing, 3238 // will not be available. This flag is used by Google Cloud Endpoints to 3239 // bypass checks for internal methods, such as service health check 3240 // methods. 3241 SkipServiceControl bool `json:"skipServiceControl,omitempty"` 3242 3243 // ForceSendFields is a list of field names (e.g. 3244 // "AllowUnregisteredCalls") to unconditionally include in API requests. 3245 // By default, fields with empty values are omitted from API requests. 3246 // However, any non-pointer, non-interface field appearing in 3247 // ForceSendFields will be sent to the server regardless of whether the 3248 // field is empty or not. This may be used to include empty fields in 3249 // Patch requests. 3250 ForceSendFields []string `json:"-"` 3251 3252 // NullFields is a list of field names (e.g. "AllowUnregisteredCalls") 3253 // to include in API requests with the JSON null value. By default, 3254 // fields with empty values are omitted from API requests. However, any 3255 // field with an empty value appearing in NullFields will be sent to the 3256 // server as null. It is an error if a field in this list has a 3257 // non-empty value. This may be used to include null fields in Patch 3258 // requests. 3259 NullFields []string `json:"-"` 3260} 3261 3262func (s *UsageRule) MarshalJSON() ([]byte, error) { 3263 type NoMethod UsageRule 3264 raw := NoMethod(*s) 3265 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3266} 3267 3268// V1Beta1BatchCreateProducerOverridesResponse: Response message for 3269// BatchCreateProducerOverrides 3270type V1Beta1BatchCreateProducerOverridesResponse struct { 3271 // Overrides: The overrides that were created. 3272 Overrides []*V1Beta1QuotaOverride `json:"overrides,omitempty"` 3273 3274 // ForceSendFields is a list of field names (e.g. "Overrides") to 3275 // unconditionally include in API requests. By default, fields with 3276 // empty values are omitted from API requests. However, any non-pointer, 3277 // non-interface field appearing in ForceSendFields will be sent to the 3278 // server regardless of whether the field is empty or not. This may be 3279 // used to include empty fields in Patch requests. 3280 ForceSendFields []string `json:"-"` 3281 3282 // NullFields is a list of field names (e.g. "Overrides") to include in 3283 // API requests with the JSON null value. By default, fields with empty 3284 // values are omitted from API requests. However, any field with an 3285 // empty value appearing in NullFields will be sent to the server as 3286 // null. It is an error if a field in this list has a non-empty value. 3287 // This may be used to include null fields in Patch requests. 3288 NullFields []string `json:"-"` 3289} 3290 3291func (s *V1Beta1BatchCreateProducerOverridesResponse) MarshalJSON() ([]byte, error) { 3292 type NoMethod V1Beta1BatchCreateProducerOverridesResponse 3293 raw := NoMethod(*s) 3294 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3295} 3296 3297// V1Beta1ConsumerQuotaLimit: Consumer quota settings for a quota limit. 3298type V1Beta1ConsumerQuotaLimit struct { 3299 // IsPrecise: Whether this limit is precise or imprecise. 3300 IsPrecise bool `json:"isPrecise,omitempty"` 3301 3302 // Metric: The name of the parent metric of this limit. An example name 3303 // would be: `compute.googleapis.com/cpus` 3304 Metric string `json:"metric,omitempty"` 3305 3306 // Name: The resource name of the quota limit. An example name would be: 3307 // `services/compute.googleapis.com/projects/123/quotas/metrics/compute.g 3308 // oogleapis.com%2Fcpus/limits/%2Fproject%2Fregion` The resource name is 3309 // intended to be opaque and should not be parsed for its component 3310 // strings, since its representation could change in the future. 3311 Name string `json:"name,omitempty"` 3312 3313 // QuotaBuckets: Summary of the enforced quota buckets, organized by 3314 // quota dimension, ordered from least specific to most specific (for 3315 // example, the global default bucket, with no quota dimensions, will 3316 // always appear first). 3317 QuotaBuckets []*V1Beta1QuotaBucket `json:"quotaBuckets,omitempty"` 3318 3319 // Unit: The limit unit. An example unit would be: 3320 // `1/{project}/{region}` Note that `{project}` and `{region}` are not 3321 // placeholders in this example; the literal characters `{` and `}` 3322 // occur in the string. 3323 Unit string `json:"unit,omitempty"` 3324 3325 // ServerResponse contains the HTTP response code and headers from the 3326 // server. 3327 googleapi.ServerResponse `json:"-"` 3328 3329 // ForceSendFields is a list of field names (e.g. "IsPrecise") to 3330 // unconditionally include in API requests. By default, fields with 3331 // empty values are omitted from API requests. However, any non-pointer, 3332 // non-interface field appearing in ForceSendFields will be sent to the 3333 // server regardless of whether the field is empty or not. This may be 3334 // used to include empty fields in Patch requests. 3335 ForceSendFields []string `json:"-"` 3336 3337 // NullFields is a list of field names (e.g. "IsPrecise") to include in 3338 // API requests with the JSON null value. By default, fields with empty 3339 // values are omitted from API requests. However, any field with an 3340 // empty value appearing in NullFields will be sent to the server as 3341 // null. It is an error if a field in this list has a non-empty value. 3342 // This may be used to include null fields in Patch requests. 3343 NullFields []string `json:"-"` 3344} 3345 3346func (s *V1Beta1ConsumerQuotaLimit) MarshalJSON() ([]byte, error) { 3347 type NoMethod V1Beta1ConsumerQuotaLimit 3348 raw := NoMethod(*s) 3349 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3350} 3351 3352// V1Beta1ConsumerQuotaMetric: Consumer quota settings for a quota 3353// metric. 3354type V1Beta1ConsumerQuotaMetric struct { 3355 // ConsumerQuotaLimits: The consumer quota for each quota limit defined 3356 // on the metric. 3357 ConsumerQuotaLimits []*V1Beta1ConsumerQuotaLimit `json:"consumerQuotaLimits,omitempty"` 3358 3359 // DescendantConsumerQuotaLimits: The quota limits targeting the 3360 // descendant containers of the consumer in request. If the consumer in 3361 // request is of type `organizations` or `folders`, the field will list 3362 // per-project limits in the metric; if the consumer in request is of 3363 // type `project`, the field will be empty. The `quota_buckets` field of 3364 // each descendant consumer quota limit will not be populated. 3365 DescendantConsumerQuotaLimits []*V1Beta1ConsumerQuotaLimit `json:"descendantConsumerQuotaLimits,omitempty"` 3366 3367 // DisplayName: The display name of the metric. An example name would 3368 // be: "CPUs" 3369 DisplayName string `json:"displayName,omitempty"` 3370 3371 // Metric: The name of the metric. An example name would be: 3372 // `compute.googleapis.com/cpus` 3373 Metric string `json:"metric,omitempty"` 3374 3375 // Name: The resource name of the quota settings on this metric for this 3376 // consumer. An example name would be: 3377 // `services/serviceconsumermanagement.googleapis.com/projects/123/quota/ 3378 // metrics/compute.googleapis.com%2Fcpus The resource name is intended 3379 // to be opaque and should not be parsed for its component strings, 3380 // since its representation could change in the future. 3381 Name string `json:"name,omitempty"` 3382 3383 // Unit: The units in which the metric value is reported. 3384 Unit string `json:"unit,omitempty"` 3385 3386 // ServerResponse contains the HTTP response code and headers from the 3387 // server. 3388 googleapi.ServerResponse `json:"-"` 3389 3390 // ForceSendFields is a list of field names (e.g. "ConsumerQuotaLimits") 3391 // to unconditionally include in API requests. By default, fields with 3392 // empty values are omitted from API requests. However, any non-pointer, 3393 // non-interface field appearing in ForceSendFields will be sent to the 3394 // server regardless of whether the field is empty or not. This may be 3395 // used to include empty fields in Patch requests. 3396 ForceSendFields []string `json:"-"` 3397 3398 // NullFields is a list of field names (e.g. "ConsumerQuotaLimits") to 3399 // include in API requests with the JSON null value. By default, fields 3400 // with empty values are omitted from API requests. However, any field 3401 // with an empty value appearing in NullFields will be sent to the 3402 // server as null. It is an error if a field in this list has a 3403 // non-empty value. This may be used to include null fields in Patch 3404 // requests. 3405 NullFields []string `json:"-"` 3406} 3407 3408func (s *V1Beta1ConsumerQuotaMetric) MarshalJSON() ([]byte, error) { 3409 type NoMethod V1Beta1ConsumerQuotaMetric 3410 raw := NoMethod(*s) 3411 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3412} 3413 3414// V1Beta1DisableConsumerResponse: Response message for the 3415// `DisableConsumer` method. This response message is assigned to the 3416// `response` field of the returned Operation when that operation is 3417// done. 3418type V1Beta1DisableConsumerResponse struct { 3419} 3420 3421// V1Beta1EnableConsumerResponse: Response message for the 3422// `EnableConsumer` method. This response message is assigned to the 3423// `response` field of the returned Operation when that operation is 3424// done. 3425type V1Beta1EnableConsumerResponse struct { 3426} 3427 3428// V1Beta1GenerateServiceIdentityResponse: Response message for the 3429// `GenerateServiceIdentity` method. This response message is assigned 3430// to the `response` field of the returned Operation when that operation 3431// is done. 3432type V1Beta1GenerateServiceIdentityResponse struct { 3433 // Identity: ServiceIdentity that was created or retrieved. 3434 Identity *V1Beta1ServiceIdentity `json:"identity,omitempty"` 3435 3436 // ForceSendFields is a list of field names (e.g. "Identity") to 3437 // unconditionally include in API requests. By default, fields with 3438 // empty values are omitted from API requests. However, any non-pointer, 3439 // non-interface field appearing in ForceSendFields will be sent to the 3440 // server regardless of whether the field is empty or not. This may be 3441 // used to include empty fields in Patch requests. 3442 ForceSendFields []string `json:"-"` 3443 3444 // NullFields is a list of field names (e.g. "Identity") to include in 3445 // API requests with the JSON null value. By default, fields with empty 3446 // values are omitted from API requests. However, any field with an 3447 // empty value appearing in NullFields will be sent to the server as 3448 // null. It is an error if a field in this list has a non-empty value. 3449 // This may be used to include null fields in Patch requests. 3450 NullFields []string `json:"-"` 3451} 3452 3453func (s *V1Beta1GenerateServiceIdentityResponse) MarshalJSON() ([]byte, error) { 3454 type NoMethod V1Beta1GenerateServiceIdentityResponse 3455 raw := NoMethod(*s) 3456 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3457} 3458 3459// V1Beta1ImportProducerOverridesRequest: Request message for 3460// ImportProducerOverrides 3461type V1Beta1ImportProducerOverridesRequest struct { 3462 // Force: Whether to force the creation of the quota overrides. Setting 3463 // the force parameter to 'true' ignores all quota safety checks that 3464 // would fail the request. QuotaSafetyCheck lists all such validations. 3465 Force bool `json:"force,omitempty"` 3466 3467 // ForceOnly: The list of quota safety checks to ignore before the 3468 // override mutation. Unlike 'force' field that ignores all the quota 3469 // safety checks, the 'force_only' field ignores only the specified 3470 // checks; other checks are still enforced. The 'force' and 'force_only' 3471 // fields cannot both be set. 3472 // 3473 // Possible values: 3474 // "QUOTA_SAFETY_CHECK_UNSPECIFIED" - Unspecified quota safety check. 3475 // "LIMIT_DECREASE_BELOW_USAGE" - Validates that a quota mutation 3476 // would not cause the consumer's effective limit to be lower than the 3477 // consumer's quota usage. 3478 // "LIMIT_DECREASE_PERCENTAGE_TOO_HIGH" - Validates that a quota 3479 // mutation would not cause the consumer's effective limit to decrease 3480 // by more than 10 percent. 3481 ForceOnly []string `json:"forceOnly,omitempty"` 3482 3483 // InlineSource: The import data is specified in the request message 3484 // itself 3485 InlineSource *V1Beta1OverrideInlineSource `json:"inlineSource,omitempty"` 3486 3487 // ForceSendFields is a list of field names (e.g. "Force") to 3488 // unconditionally include in API requests. By default, fields with 3489 // empty values are omitted from API requests. However, any non-pointer, 3490 // non-interface field appearing in ForceSendFields will be sent to the 3491 // server regardless of whether the field is empty or not. This may be 3492 // used to include empty fields in Patch requests. 3493 ForceSendFields []string `json:"-"` 3494 3495 // NullFields is a list of field names (e.g. "Force") to include in API 3496 // requests with the JSON null value. By default, fields with empty 3497 // values are omitted from API requests. However, any field with an 3498 // empty value appearing in NullFields will be sent to the server as 3499 // null. It is an error if a field in this list has a non-empty value. 3500 // This may be used to include null fields in Patch requests. 3501 NullFields []string `json:"-"` 3502} 3503 3504func (s *V1Beta1ImportProducerOverridesRequest) MarshalJSON() ([]byte, error) { 3505 type NoMethod V1Beta1ImportProducerOverridesRequest 3506 raw := NoMethod(*s) 3507 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3508} 3509 3510// V1Beta1ImportProducerOverridesResponse: Response message for 3511// ImportProducerOverrides 3512type V1Beta1ImportProducerOverridesResponse struct { 3513 // Overrides: The overrides that were created from the imported data. 3514 Overrides []*V1Beta1QuotaOverride `json:"overrides,omitempty"` 3515 3516 // ForceSendFields is a list of field names (e.g. "Overrides") to 3517 // unconditionally include in API requests. By default, fields with 3518 // empty values are omitted from API requests. However, any non-pointer, 3519 // non-interface field appearing in ForceSendFields will be sent to the 3520 // server regardless of whether the field is empty or not. This may be 3521 // used to include empty fields in Patch requests. 3522 ForceSendFields []string `json:"-"` 3523 3524 // NullFields is a list of field names (e.g. "Overrides") to include in 3525 // API requests with the JSON null value. By default, fields with empty 3526 // values are omitted from API requests. However, any field with an 3527 // empty value appearing in NullFields will be sent to the server as 3528 // null. It is an error if a field in this list has a non-empty value. 3529 // This may be used to include null fields in Patch requests. 3530 NullFields []string `json:"-"` 3531} 3532 3533func (s *V1Beta1ImportProducerOverridesResponse) MarshalJSON() ([]byte, error) { 3534 type NoMethod V1Beta1ImportProducerOverridesResponse 3535 raw := NoMethod(*s) 3536 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3537} 3538 3539// V1Beta1ImportProducerQuotaPoliciesResponse: Response message for 3540// ImportProducerQuotaPolicies 3541type V1Beta1ImportProducerQuotaPoliciesResponse struct { 3542 // Policies: The policies that were created from the imported data. 3543 Policies []*V1Beta1ProducerQuotaPolicy `json:"policies,omitempty"` 3544 3545 // ForceSendFields is a list of field names (e.g. "Policies") to 3546 // unconditionally include in API requests. By default, fields with 3547 // empty values are omitted from API requests. However, any non-pointer, 3548 // non-interface field appearing in ForceSendFields will be sent to the 3549 // server regardless of whether the field is empty or not. This may be 3550 // used to include empty fields in Patch requests. 3551 ForceSendFields []string `json:"-"` 3552 3553 // NullFields is a list of field names (e.g. "Policies") to include in 3554 // API requests with the JSON null value. By default, fields with empty 3555 // values are omitted from API requests. However, any field with an 3556 // empty value appearing in NullFields will be sent to the server as 3557 // null. It is an error if a field in this list has a non-empty value. 3558 // This may be used to include null fields in Patch requests. 3559 NullFields []string `json:"-"` 3560} 3561 3562func (s *V1Beta1ImportProducerQuotaPoliciesResponse) MarshalJSON() ([]byte, error) { 3563 type NoMethod V1Beta1ImportProducerQuotaPoliciesResponse 3564 raw := NoMethod(*s) 3565 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3566} 3567 3568// V1Beta1ListConsumerQuotaMetricsResponse: Response message for 3569// ListConsumerQuotaMetrics. 3570type V1Beta1ListConsumerQuotaMetricsResponse struct { 3571 // Metrics: Quota settings for the consumer, organized by quota metric. 3572 Metrics []*V1Beta1ConsumerQuotaMetric `json:"metrics,omitempty"` 3573 3574 // NextPageToken: Token identifying which result to start with; returned 3575 // by a previous list call. 3576 NextPageToken string `json:"nextPageToken,omitempty"` 3577 3578 // ServerResponse contains the HTTP response code and headers from the 3579 // server. 3580 googleapi.ServerResponse `json:"-"` 3581 3582 // ForceSendFields is a list of field names (e.g. "Metrics") to 3583 // unconditionally include in API requests. By default, fields with 3584 // empty values are omitted from API requests. However, any non-pointer, 3585 // non-interface field appearing in ForceSendFields will be sent to the 3586 // server regardless of whether the field is empty or not. This may be 3587 // used to include empty fields in Patch requests. 3588 ForceSendFields []string `json:"-"` 3589 3590 // NullFields is a list of field names (e.g. "Metrics") to include in 3591 // API requests with the JSON null value. By default, fields with empty 3592 // values are omitted from API requests. However, any field with an 3593 // empty value appearing in NullFields will be sent to the server as 3594 // null. It is an error if a field in this list has a non-empty value. 3595 // This may be used to include null fields in Patch requests. 3596 NullFields []string `json:"-"` 3597} 3598 3599func (s *V1Beta1ListConsumerQuotaMetricsResponse) MarshalJSON() ([]byte, error) { 3600 type NoMethod V1Beta1ListConsumerQuotaMetricsResponse 3601 raw := NoMethod(*s) 3602 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3603} 3604 3605// V1Beta1ListProducerOverridesResponse: Response message for 3606// ListProducerOverrides. 3607type V1Beta1ListProducerOverridesResponse struct { 3608 // NextPageToken: Token identifying which result to start with; returned 3609 // by a previous list call. 3610 NextPageToken string `json:"nextPageToken,omitempty"` 3611 3612 // Overrides: Producer overrides on this limit. 3613 Overrides []*V1Beta1QuotaOverride `json:"overrides,omitempty"` 3614 3615 // ServerResponse contains the HTTP response code and headers from the 3616 // server. 3617 googleapi.ServerResponse `json:"-"` 3618 3619 // ForceSendFields is a list of field names (e.g. "NextPageToken") to 3620 // unconditionally include in API requests. By default, fields with 3621 // empty values are omitted from API requests. However, any non-pointer, 3622 // non-interface field appearing in ForceSendFields will be sent to the 3623 // server regardless of whether the field is empty or not. This may be 3624 // used to include empty fields in Patch requests. 3625 ForceSendFields []string `json:"-"` 3626 3627 // NullFields is a list of field names (e.g. "NextPageToken") to include 3628 // in API requests with the JSON null value. By default, fields with 3629 // empty values are omitted from API requests. However, any field with 3630 // an empty value appearing in NullFields will be sent to the server as 3631 // null. It is an error if a field in this list has a non-empty value. 3632 // This may be used to include null fields in Patch requests. 3633 NullFields []string `json:"-"` 3634} 3635 3636func (s *V1Beta1ListProducerOverridesResponse) MarshalJSON() ([]byte, error) { 3637 type NoMethod V1Beta1ListProducerOverridesResponse 3638 raw := NoMethod(*s) 3639 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3640} 3641 3642// V1Beta1OverrideInlineSource: Import data embedded in the request 3643// message 3644type V1Beta1OverrideInlineSource struct { 3645 // Overrides: The overrides to create. Each override must have a value 3646 // for 'metric' and 'unit', to specify which metric and which limit the 3647 // override should be applied to. The 'name' field of the override does 3648 // not need to be set; it is ignored. 3649 Overrides []*V1Beta1QuotaOverride `json:"overrides,omitempty"` 3650 3651 // ForceSendFields is a list of field names (e.g. "Overrides") to 3652 // unconditionally include in API requests. By default, fields with 3653 // empty values are omitted from API requests. However, any non-pointer, 3654 // non-interface field appearing in ForceSendFields will be sent to the 3655 // server regardless of whether the field is empty or not. This may be 3656 // used to include empty fields in Patch requests. 3657 ForceSendFields []string `json:"-"` 3658 3659 // NullFields is a list of field names (e.g. "Overrides") to include in 3660 // API requests with the JSON null value. By default, fields with empty 3661 // values are omitted from API requests. However, any field with an 3662 // empty value appearing in NullFields will be sent to the server as 3663 // null. It is an error if a field in this list has a non-empty value. 3664 // This may be used to include null fields in Patch requests. 3665 NullFields []string `json:"-"` 3666} 3667 3668func (s *V1Beta1OverrideInlineSource) MarshalJSON() ([]byte, error) { 3669 type NoMethod V1Beta1OverrideInlineSource 3670 raw := NoMethod(*s) 3671 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3672} 3673 3674// V1Beta1ProducerQuotaPolicy: Quota policy created by service producer. 3675type V1Beta1ProducerQuotaPolicy struct { 3676 // Container: The cloud resource container at which the quota policy is 3677 // created. The format is {container_type}/{container_number} 3678 Container string `json:"container,omitempty"` 3679 3680 // Dimensions: If this map is nonempty, then this policy applies only 3681 // to specific values for dimensions defined in the limit unit. For 3682 // example, an policy on a limit with the unit 1/{project}/{region} 3683 // could contain an entry with the key "region" and the value 3684 // "us-east-1"; the policy is only applied to quota consumed in that 3685 // region. This map has the following restrictions: * Keys that are not 3686 // defined in the limit's unit are not valid keys. Any string appearing 3687 // in {brackets} in the unit (besides {project} or {user}) is a defined 3688 // key. * "project" is not a valid key; the project is already specified 3689 // in the parent resource name. * "user" is not a valid key; the API 3690 // does not support quota polcies that apply only to a specific user. * 3691 // If "region" appears as a key, its value must be a valid Cloud region. 3692 // * If "zone" appears as a key, its value must be a valid Cloud zone. * 3693 // If any valid key other than "region" or "zone" appears in the map, 3694 // then all valid keys other than "region" or "zone" must also appear in 3695 // the map. 3696 Dimensions map[string]string `json:"dimensions,omitempty"` 3697 3698 // Metric: The name of the metric to which this policy applies. An 3699 // example name would be: `compute.googleapis.com/cpus` 3700 Metric string `json:"metric,omitempty"` 3701 3702 // Name: The resource name of the producer policy. An example name would 3703 // be: 3704 // `services/compute.googleapis.com/organizations/123/consumerQuotaMetric 3705 // s/compute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion/producerQuo 3706 // taPolicies/4a3f2c1d` 3707 Name string `json:"name,omitempty"` 3708 3709 // PolicyValue: The quota policy value. Can be any nonnegative integer, 3710 // or -1 (unlimited quota). 3711 PolicyValue int64 `json:"policyValue,omitempty,string"` 3712 3713 // Unit: The limit unit of the limit to which this policy applies. An 3714 // example unit would be: `1/{project}/{region}` Note that `{project}` 3715 // and `{region}` are not placeholders in this example; the literal 3716 // characters `{` and `}` occur in the string. 3717 Unit string `json:"unit,omitempty"` 3718 3719 // ForceSendFields is a list of field names (e.g. "Container") to 3720 // unconditionally include in API requests. By default, fields with 3721 // empty values are omitted from API requests. However, any non-pointer, 3722 // non-interface field appearing in ForceSendFields will be sent to the 3723 // server regardless of whether the field is empty or not. This may be 3724 // used to include empty fields in Patch requests. 3725 ForceSendFields []string `json:"-"` 3726 3727 // NullFields is a list of field names (e.g. "Container") to include in 3728 // API requests with the JSON null value. By default, fields with empty 3729 // values are omitted from API requests. However, any field with an 3730 // empty value appearing in NullFields will be sent to the server as 3731 // null. It is an error if a field in this list has a non-empty value. 3732 // This may be used to include null fields in Patch requests. 3733 NullFields []string `json:"-"` 3734} 3735 3736func (s *V1Beta1ProducerQuotaPolicy) MarshalJSON() ([]byte, error) { 3737 type NoMethod V1Beta1ProducerQuotaPolicy 3738 raw := NoMethod(*s) 3739 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3740} 3741 3742// V1Beta1QuotaBucket: A quota bucket is a quota provisioning unit for a 3743// specific set of dimensions. 3744type V1Beta1QuotaBucket struct { 3745 // AdminOverride: Admin override on this quota bucket. 3746 AdminOverride *V1Beta1QuotaOverride `json:"adminOverride,omitempty"` 3747 3748 // ConsumerOverride: Consumer override on this quota bucket. 3749 ConsumerOverride *V1Beta1QuotaOverride `json:"consumerOverride,omitempty"` 3750 3751 // DefaultLimit: The default limit of this quota bucket, as specified by 3752 // the service configuration. 3753 DefaultLimit int64 `json:"defaultLimit,omitempty,string"` 3754 3755 // Dimensions: The dimensions of this quota bucket. If this map is 3756 // empty, this is the global bucket, which is the default quota value 3757 // applied to all requests that do not have a more specific override. If 3758 // this map is nonempty, the default limit, effective limit, and quota 3759 // overrides apply only to requests that have the dimensions given in 3760 // the map. For example, if the map has key "region" and value 3761 // "us-east-1", then the specified effective limit is only effective in 3762 // that region, and the specified overrides apply only in that region. 3763 Dimensions map[string]string `json:"dimensions,omitempty"` 3764 3765 // EffectiveLimit: The effective limit of this quota bucket. Equal to 3766 // default_limit if there are no overrides. 3767 EffectiveLimit int64 `json:"effectiveLimit,omitempty,string"` 3768 3769 // ProducerOverride: Producer override on this quota bucket. 3770 ProducerOverride *V1Beta1QuotaOverride `json:"producerOverride,omitempty"` 3771 3772 // ForceSendFields is a list of field names (e.g. "AdminOverride") to 3773 // unconditionally include in API requests. By default, fields with 3774 // empty values are omitted from API requests. However, any non-pointer, 3775 // non-interface field appearing in ForceSendFields will be sent to the 3776 // server regardless of whether the field is empty or not. This may be 3777 // used to include empty fields in Patch requests. 3778 ForceSendFields []string `json:"-"` 3779 3780 // NullFields is a list of field names (e.g. "AdminOverride") to include 3781 // in API requests with the JSON null value. By default, fields with 3782 // empty values are omitted from API requests. However, any field with 3783 // an empty value appearing in NullFields will be sent to the server as 3784 // null. It is an error if a field in this list has a non-empty value. 3785 // This may be used to include null fields in Patch requests. 3786 NullFields []string `json:"-"` 3787} 3788 3789func (s *V1Beta1QuotaBucket) MarshalJSON() ([]byte, error) { 3790 type NoMethod V1Beta1QuotaBucket 3791 raw := NoMethod(*s) 3792 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3793} 3794 3795// V1Beta1QuotaOverride: A quota override 3796type V1Beta1QuotaOverride struct { 3797 // AdminOverrideAncestor: The resource name of the ancestor that 3798 // requested the override. For example: "organizations/12345" or 3799 // "folders/67890". Used by admin overrides only. 3800 AdminOverrideAncestor string `json:"adminOverrideAncestor,omitempty"` 3801 3802 // Dimensions: If this map is nonempty, then this override applies only 3803 // to specific values for dimensions defined in the limit unit. For 3804 // example, an override on a limit with the unit 1/{project}/{region} 3805 // could contain an entry with the key "region" and the value 3806 // "us-east-1"; the override is only applied to quota consumed in that 3807 // region. This map has the following restrictions: * Keys that are not 3808 // defined in the limit's unit are not valid keys. Any string appearing 3809 // in {brackets} in the unit (besides {project} or {user}) is a defined 3810 // key. * "project" is not a valid key; the project is already specified 3811 // in the parent resource name. * "user" is not a valid key; the API 3812 // does not support quota overrides that apply only to a specific user. 3813 // * If "region" appears as a key, its value must be a valid Cloud 3814 // region. * If "zone" appears as a key, its value must be a valid Cloud 3815 // zone. * If any valid key other than "region" or "zone" appears in the 3816 // map, then all valid keys other than "region" or "zone" must also 3817 // appear in the map. 3818 Dimensions map[string]string `json:"dimensions,omitempty"` 3819 3820 // Metric: The name of the metric to which this override applies. An 3821 // example name would be: `compute.googleapis.com/cpus` 3822 Metric string `json:"metric,omitempty"` 3823 3824 // Name: The resource name of the producer override. An example name 3825 // would be: 3826 // `services/compute.googleapis.com/projects/123/consumerQuotaMetrics/com 3827 // pute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion/producerOverride 3828 // s/4a3f2c1d` 3829 Name string `json:"name,omitempty"` 3830 3831 // OverrideValue: The overriding quota limit value. Can be any 3832 // nonnegative integer, or -1 (unlimited quota). 3833 OverrideValue int64 `json:"overrideValue,omitempty,string"` 3834 3835 // Unit: The limit unit of the limit to which this override applies. An 3836 // example unit would be: `1/{project}/{region}` Note that `{project}` 3837 // and `{region}` are not placeholders in this example; the literal 3838 // characters `{` and `}` occur in the string. 3839 Unit string `json:"unit,omitempty"` 3840 3841 // ForceSendFields is a list of field names (e.g. 3842 // "AdminOverrideAncestor") to unconditionally include in API requests. 3843 // By default, fields with empty values are omitted from API requests. 3844 // However, any non-pointer, non-interface field appearing in 3845 // ForceSendFields will be sent to the server regardless of whether the 3846 // field is empty or not. This may be used to include empty fields in 3847 // Patch requests. 3848 ForceSendFields []string `json:"-"` 3849 3850 // NullFields is a list of field names (e.g. "AdminOverrideAncestor") to 3851 // include in API requests with the JSON null value. By default, fields 3852 // with empty values are omitted from API requests. However, any field 3853 // with an empty value appearing in NullFields will be sent to the 3854 // server as null. It is an error if a field in this list has a 3855 // non-empty value. This may be used to include null fields in Patch 3856 // requests. 3857 NullFields []string `json:"-"` 3858} 3859 3860func (s *V1Beta1QuotaOverride) MarshalJSON() ([]byte, error) { 3861 type NoMethod V1Beta1QuotaOverride 3862 raw := NoMethod(*s) 3863 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3864} 3865 3866// V1Beta1RefreshConsumerResponse: Response message for the 3867// `RefreshConsumer` method. This response message is assigned to the 3868// `response` field of the returned Operation when that operation is 3869// done. 3870type V1Beta1RefreshConsumerResponse struct { 3871} 3872 3873// V1Beta1ServiceIdentity: A service identity in the Identity and Access 3874// Management API. 3875type V1Beta1ServiceIdentity struct { 3876 // Email: The email address of the service identity. 3877 Email string `json:"email,omitempty"` 3878 3879 // Name: P4 service identity resource name. An example name would be: 3880 // `services/serviceconsumermanagement.googleapis.com/projects/123/servic 3881 // eIdentities/default` 3882 Name string `json:"name,omitempty"` 3883 3884 // Tag: The P4 service identity configuration tag. This must be defined 3885 // in activation_grants. If not specified when creating the account, the 3886 // tag is set to "default". 3887 Tag string `json:"tag,omitempty"` 3888 3889 // UniqueId: The unique and stable id of the service identity. 3890 UniqueId string `json:"uniqueId,omitempty"` 3891 3892 // ForceSendFields is a list of field names (e.g. "Email") to 3893 // unconditionally include in API requests. By default, fields with 3894 // empty values are omitted from API requests. However, any non-pointer, 3895 // non-interface field appearing in ForceSendFields will be sent to the 3896 // server regardless of whether the field is empty or not. This may be 3897 // used to include empty fields in Patch requests. 3898 ForceSendFields []string `json:"-"` 3899 3900 // NullFields is a list of field names (e.g. "Email") to include in API 3901 // requests with the JSON null value. By default, fields with empty 3902 // values are omitted from API requests. However, any field with an 3903 // empty value appearing in NullFields will be sent to the server as 3904 // null. It is an error if a field in this list has a non-empty value. 3905 // This may be used to include null fields in Patch requests. 3906 NullFields []string `json:"-"` 3907} 3908 3909func (s *V1Beta1ServiceIdentity) MarshalJSON() ([]byte, error) { 3910 type NoMethod V1Beta1ServiceIdentity 3911 raw := NoMethod(*s) 3912 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3913} 3914 3915// V1beta1AddVisibilityLabelsResponse: Response message for the 3916// `AddVisibilityLabels` method. This response message is assigned to 3917// the `response` field of the returned Operation when that operation is 3918// done. 3919type V1beta1AddVisibilityLabelsResponse struct { 3920 // Labels: The updated set of visibility labels for this consumer on 3921 // this service. 3922 Labels []string `json:"labels,omitempty"` 3923 3924 // ForceSendFields is a list of field names (e.g. "Labels") to 3925 // unconditionally include in API requests. By default, fields with 3926 // empty values are omitted from API requests. However, any non-pointer, 3927 // non-interface field appearing in ForceSendFields will be sent to the 3928 // server regardless of whether the field is empty or not. This may be 3929 // used to include empty fields in Patch requests. 3930 ForceSendFields []string `json:"-"` 3931 3932 // NullFields is a list of field names (e.g. "Labels") to include in API 3933 // requests with the JSON null value. By default, fields with empty 3934 // values are omitted from API requests. However, any field with an 3935 // empty value appearing in NullFields will be sent to the server as 3936 // null. It is an error if a field in this list has a non-empty value. 3937 // This may be used to include null fields in Patch requests. 3938 NullFields []string `json:"-"` 3939} 3940 3941func (s *V1beta1AddVisibilityLabelsResponse) MarshalJSON() ([]byte, error) { 3942 type NoMethod V1beta1AddVisibilityLabelsResponse 3943 raw := NoMethod(*s) 3944 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3945} 3946 3947// V1beta1DefaultIdentity: A default identity in the Identity and Access 3948// Management API. 3949type V1beta1DefaultIdentity struct { 3950 // Email: The email address of the default identity. 3951 Email string `json:"email,omitempty"` 3952 3953 // Name: Default identity resource name. An example name would be: 3954 // `services/serviceconsumermanagement.googleapis.com/projects/123/defaul 3955 // tIdentity` 3956 Name string `json:"name,omitempty"` 3957 3958 // Tag: The Default Identity tag. If specified when creating the 3959 // account, the tag must be present in activation_grants. If not 3960 // specified when creating the account, the tag is set to the tag 3961 // specified in activation_grants. 3962 Tag string `json:"tag,omitempty"` 3963 3964 // UniqueId: The unique and stable id of the default identity. 3965 UniqueId string `json:"uniqueId,omitempty"` 3966 3967 // ForceSendFields is a list of field names (e.g. "Email") to 3968 // unconditionally include in API requests. By default, fields with 3969 // empty values are omitted from API requests. However, any non-pointer, 3970 // non-interface field appearing in ForceSendFields will be sent to the 3971 // server regardless of whether the field is empty or not. This may be 3972 // used to include empty fields in Patch requests. 3973 ForceSendFields []string `json:"-"` 3974 3975 // NullFields is a list of field names (e.g. "Email") to include in API 3976 // requests with the JSON null value. By default, fields with empty 3977 // values are omitted from API requests. However, any field with an 3978 // empty value appearing in NullFields will be sent to the server as 3979 // null. It is an error if a field in this list has a non-empty value. 3980 // This may be used to include null fields in Patch requests. 3981 NullFields []string `json:"-"` 3982} 3983 3984func (s *V1beta1DefaultIdentity) MarshalJSON() ([]byte, error) { 3985 type NoMethod V1beta1DefaultIdentity 3986 raw := NoMethod(*s) 3987 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3988} 3989 3990// V1beta1DisableConsumerResponse: Response message for the 3991// `DisableConsumer` method. This response message is assigned to the 3992// `response` field of the returned Operation when that operation is 3993// done. 3994type V1beta1DisableConsumerResponse struct { 3995} 3996 3997// V1beta1EnableConsumerResponse: Response message for the 3998// `EnableConsumer` method. This response message is assigned to the 3999// `response` field of the returned Operation when that operation is 4000// done. 4001type V1beta1EnableConsumerResponse struct { 4002} 4003 4004// V1beta1GenerateDefaultIdentityResponse: Response message for the 4005// `GenerateDefaultIdentity` method. This response message is assigned 4006// to the `response` field of the returned Operation when that operation 4007// is done. 4008type V1beta1GenerateDefaultIdentityResponse struct { 4009 // AttachStatus: Status of the role attachment. Under development 4010 // (go/si-attach-role), currently always return 4011 // ATTACH_STATUS_UNSPECIFIED) 4012 // 4013 // Possible values: 4014 // "ATTACH_STATUS_UNSPECIFIED" - Indicates that the AttachStatus was 4015 // not set. 4016 // "ATTACHED" - The default identity was attached to a role 4017 // successfully in this request. 4018 // "ATTACH_SKIPPED" - The request specified that no attempt should be 4019 // made to attach the role. 4020 // "PREVIOUSLY_ATTACHED" - Role was attached to the consumer project 4021 // at some point in time. Tenant manager doesn't make assertion about 4022 // the current state of the identity with respect to the consumer. Role 4023 // attachment should happen only once after activation and cannot be 4024 // reattached after customer removes it. (go/si-attach-role) 4025 // "ATTACH_DENIED_BY_ORG_POLICY" - Role attachment was denied in this 4026 // request by customer set org policy. (go/si-attach-role) 4027 AttachStatus string `json:"attachStatus,omitempty"` 4028 4029 // Identity: DefaultIdentity that was created or retrieved. 4030 Identity *V1beta1DefaultIdentity `json:"identity,omitempty"` 4031 4032 // Role: Role attached to consumer project. Empty if not attached in 4033 // this request. (Under development, currently always return empty.) 4034 Role string `json:"role,omitempty"` 4035 4036 // ForceSendFields is a list of field names (e.g. "AttachStatus") to 4037 // unconditionally include in API requests. By default, fields with 4038 // empty values are omitted from API requests. However, any non-pointer, 4039 // non-interface field appearing in ForceSendFields will be sent to the 4040 // server regardless of whether the field is empty or not. This may be 4041 // used to include empty fields in Patch requests. 4042 ForceSendFields []string `json:"-"` 4043 4044 // NullFields is a list of field names (e.g. "AttachStatus") to include 4045 // in API requests with the JSON null value. By default, fields with 4046 // empty values are omitted from API requests. However, any field with 4047 // an empty value appearing in NullFields will be sent to the server as 4048 // null. It is an error if a field in this list has a non-empty value. 4049 // This may be used to include null fields in Patch requests. 4050 NullFields []string `json:"-"` 4051} 4052 4053func (s *V1beta1GenerateDefaultIdentityResponse) MarshalJSON() ([]byte, error) { 4054 type NoMethod V1beta1GenerateDefaultIdentityResponse 4055 raw := NoMethod(*s) 4056 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 4057} 4058 4059// V1beta1GenerateServiceAccountResponse: Response message for the 4060// `GenerateServiceAccount` method. This response message is assigned to 4061// the `response` field of the returned Operation when that operation is 4062// done. 4063type V1beta1GenerateServiceAccountResponse struct { 4064 // Account: ServiceAccount that was created or retrieved. 4065 Account *V1beta1ServiceAccount `json:"account,omitempty"` 4066 4067 // ForceSendFields is a list of field names (e.g. "Account") to 4068 // unconditionally include in API requests. By default, fields with 4069 // empty values are omitted from API requests. However, any non-pointer, 4070 // non-interface field appearing in ForceSendFields will be sent to the 4071 // server regardless of whether the field is empty or not. This may be 4072 // used to include empty fields in Patch requests. 4073 ForceSendFields []string `json:"-"` 4074 4075 // NullFields is a list of field names (e.g. "Account") to include in 4076 // API requests with the JSON null value. By default, fields with empty 4077 // values are omitted from API requests. However, any field with an 4078 // empty value appearing in NullFields will be sent to the server as 4079 // null. It is an error if a field in this list has a non-empty value. 4080 // This may be used to include null fields in Patch requests. 4081 NullFields []string `json:"-"` 4082} 4083 4084func (s *V1beta1GenerateServiceAccountResponse) MarshalJSON() ([]byte, error) { 4085 type NoMethod V1beta1GenerateServiceAccountResponse 4086 raw := NoMethod(*s) 4087 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 4088} 4089 4090// V1beta1RefreshConsumerResponse: Response message for the 4091// `RefreshConsumer` method. This response message is assigned to the 4092// `response` field of the returned Operation when that operation is 4093// done. 4094type V1beta1RefreshConsumerResponse struct { 4095} 4096 4097// V1beta1RemoveVisibilityLabelsResponse: Response message for the 4098// `RemoveVisibilityLabels` method. This response message is assigned to 4099// the `response` field of the returned Operation when that operation is 4100// done. 4101type V1beta1RemoveVisibilityLabelsResponse struct { 4102 // Labels: The updated set of visibility labels for this consumer on 4103 // this service. 4104 Labels []string `json:"labels,omitempty"` 4105 4106 // ForceSendFields is a list of field names (e.g. "Labels") to 4107 // unconditionally include in API requests. By default, fields with 4108 // empty values are omitted from API requests. However, any non-pointer, 4109 // non-interface field appearing in ForceSendFields will be sent to the 4110 // server regardless of whether the field is empty or not. This may be 4111 // used to include empty fields in Patch requests. 4112 ForceSendFields []string `json:"-"` 4113 4114 // NullFields is a list of field names (e.g. "Labels") to include in API 4115 // requests with the JSON null value. By default, fields with empty 4116 // values are omitted from API requests. However, any field with an 4117 // empty value appearing in NullFields will be sent to the server as 4118 // null. It is an error if a field in this list has a non-empty value. 4119 // This may be used to include null fields in Patch requests. 4120 NullFields []string `json:"-"` 4121} 4122 4123func (s *V1beta1RemoveVisibilityLabelsResponse) MarshalJSON() ([]byte, error) { 4124 type NoMethod V1beta1RemoveVisibilityLabelsResponse 4125 raw := NoMethod(*s) 4126 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 4127} 4128 4129// V1beta1ServiceAccount: A service account in the Identity and Access 4130// Management API. 4131type V1beta1ServiceAccount struct { 4132 // Email: The email address of the service account. 4133 Email string `json:"email,omitempty"` 4134 4135 // IamAccountName: Deprecated. See b/136209818. 4136 IamAccountName string `json:"iamAccountName,omitempty"` 4137 4138 // Name: P4 SA resource name. An example name would be: 4139 // `services/serviceconsumermanagement.googleapis.com/projects/123/servic 4140 // eAccounts/default` 4141 Name string `json:"name,omitempty"` 4142 4143 // Tag: The P4 SA configuration tag. This must be defined in 4144 // activation_grants. If not specified when creating the account, the 4145 // tag is set to "default". 4146 Tag string `json:"tag,omitempty"` 4147 4148 // UniqueId: The unique and stable id of the service account. 4149 UniqueId string `json:"uniqueId,omitempty"` 4150 4151 // ForceSendFields is a list of field names (e.g. "Email") to 4152 // unconditionally include in API requests. By default, fields with 4153 // empty values are omitted from API requests. However, any non-pointer, 4154 // non-interface field appearing in ForceSendFields will be sent to the 4155 // server regardless of whether the field is empty or not. This may be 4156 // used to include empty fields in Patch requests. 4157 ForceSendFields []string `json:"-"` 4158 4159 // NullFields is a list of field names (e.g. "Email") to include in API 4160 // requests with the JSON null value. By default, fields with empty 4161 // values are omitted from API requests. However, any field with an 4162 // empty value appearing in NullFields will be sent to the server as 4163 // null. It is an error if a field in this list has a non-empty value. 4164 // This may be used to include null fields in Patch requests. 4165 NullFields []string `json:"-"` 4166} 4167 4168func (s *V1beta1ServiceAccount) MarshalJSON() ([]byte, error) { 4169 type NoMethod V1beta1ServiceAccount 4170 raw := NoMethod(*s) 4171 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 4172} 4173 4174// method id "serviceconsumermanagement.operations.get": 4175 4176type OperationsGetCall struct { 4177 s *APIService 4178 name string 4179 urlParams_ gensupport.URLParams 4180 ifNoneMatch_ string 4181 ctx_ context.Context 4182 header_ http.Header 4183} 4184 4185// Get: Gets the latest state of a long-running operation. Clients can 4186// use this method to poll the operation result at intervals as 4187// recommended by the API service. 4188// 4189// - name: The name of the operation resource. 4190func (r *OperationsService) Get(name string) *OperationsGetCall { 4191 c := &OperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} 4192 c.name = name 4193 return c 4194} 4195 4196// Fields allows partial responses to be retrieved. See 4197// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 4198// for more information. 4199func (c *OperationsGetCall) Fields(s ...googleapi.Field) *OperationsGetCall { 4200 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 4201 return c 4202} 4203 4204// IfNoneMatch sets the optional parameter which makes the operation 4205// fail if the object's ETag matches the given value. This is useful for 4206// getting updates only after the object has changed since the last 4207// request. Use googleapi.IsNotModified to check whether the response 4208// error from Do is the result of In-None-Match. 4209func (c *OperationsGetCall) IfNoneMatch(entityTag string) *OperationsGetCall { 4210 c.ifNoneMatch_ = entityTag 4211 return c 4212} 4213 4214// Context sets the context to be used in this call's Do method. Any 4215// pending HTTP request will be aborted if the provided context is 4216// canceled. 4217func (c *OperationsGetCall) Context(ctx context.Context) *OperationsGetCall { 4218 c.ctx_ = ctx 4219 return c 4220} 4221 4222// Header returns an http.Header that can be modified by the caller to 4223// add HTTP headers to the request. 4224func (c *OperationsGetCall) Header() http.Header { 4225 if c.header_ == nil { 4226 c.header_ = make(http.Header) 4227 } 4228 return c.header_ 4229} 4230 4231func (c *OperationsGetCall) doRequest(alt string) (*http.Response, error) { 4232 reqHeaders := make(http.Header) 4233 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210629") 4234 for k, v := range c.header_ { 4235 reqHeaders[k] = v 4236 } 4237 reqHeaders.Set("User-Agent", c.s.userAgent()) 4238 if c.ifNoneMatch_ != "" { 4239 reqHeaders.Set("If-None-Match", c.ifNoneMatch_) 4240 } 4241 var body io.Reader = nil 4242 c.urlParams_.Set("alt", alt) 4243 c.urlParams_.Set("prettyPrint", "false") 4244 urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}") 4245 urls += "?" + c.urlParams_.Encode() 4246 req, err := http.NewRequest("GET", urls, body) 4247 if err != nil { 4248 return nil, err 4249 } 4250 req.Header = reqHeaders 4251 googleapi.Expand(req.URL, map[string]string{ 4252 "name": c.name, 4253 }) 4254 return gensupport.SendRequest(c.ctx_, c.s.client, req) 4255} 4256 4257// Do executes the "serviceconsumermanagement.operations.get" call. 4258// Exactly one of *Operation or error will be non-nil. Any non-2xx 4259// status code is an error. Response headers are in either 4260// *Operation.ServerResponse.Header or (if a response was returned at 4261// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified 4262// to check whether the returned error was because 4263// http.StatusNotModified was returned. 4264func (c *OperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) { 4265 gensupport.SetOptions(c.urlParams_, opts...) 4266 res, err := c.doRequest("json") 4267 if res != nil && res.StatusCode == http.StatusNotModified { 4268 if res.Body != nil { 4269 res.Body.Close() 4270 } 4271 return nil, &googleapi.Error{ 4272 Code: res.StatusCode, 4273 Header: res.Header, 4274 } 4275 } 4276 if err != nil { 4277 return nil, err 4278 } 4279 defer googleapi.CloseBody(res) 4280 if err := googleapi.CheckResponse(res); err != nil { 4281 return nil, err 4282 } 4283 ret := &Operation{ 4284 ServerResponse: googleapi.ServerResponse{ 4285 Header: res.Header, 4286 HTTPStatusCode: res.StatusCode, 4287 }, 4288 } 4289 target := &ret 4290 if err := gensupport.DecodeResponse(target, res); err != nil { 4291 return nil, err 4292 } 4293 return ret, nil 4294 // { 4295 // "description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", 4296 // "flatPath": "v1beta1/operations/{operationsId}", 4297 // "httpMethod": "GET", 4298 // "id": "serviceconsumermanagement.operations.get", 4299 // "parameterOrder": [ 4300 // "name" 4301 // ], 4302 // "parameters": { 4303 // "name": { 4304 // "description": "The name of the operation resource.", 4305 // "location": "path", 4306 // "pattern": "^operations/[^/]+$", 4307 // "required": true, 4308 // "type": "string" 4309 // } 4310 // }, 4311 // "path": "v1beta1/{+name}", 4312 // "response": { 4313 // "$ref": "Operation" 4314 // }, 4315 // "scopes": [ 4316 // "https://www.googleapis.com/auth/cloud-platform" 4317 // ] 4318 // } 4319 4320} 4321 4322// method id "serviceconsumermanagement.services.consumerQuotaMetrics.get": 4323 4324type ServicesConsumerQuotaMetricsGetCall struct { 4325 s *APIService 4326 name string 4327 urlParams_ gensupport.URLParams 4328 ifNoneMatch_ string 4329 ctx_ context.Context 4330 header_ http.Header 4331} 4332 4333// Get: Retrieves a summary of quota information for a specific quota 4334// metric. 4335// 4336// - name: The resource name of the quota metric, returned by a 4337// ListConsumerQuotaMetrics call. An example name would be: 4338// `services/compute.googleapis.com/projects/123/consumerQuotaMetrics/c 4339// ompute.googleapis.com%2Fcpus`. 4340func (r *ServicesConsumerQuotaMetricsService) Get(name string) *ServicesConsumerQuotaMetricsGetCall { 4341 c := &ServicesConsumerQuotaMetricsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} 4342 c.name = name 4343 return c 4344} 4345 4346// View sets the optional parameter "view": Specifies the level of 4347// detail for quota information in the response. 4348// 4349// Possible values: 4350// "QUOTA_VIEW_UNSPECIFIED" - No quota view specified. Requests that 4351// do not specify a quota view will typically default to the BASIC view. 4352// "BASIC" - Only buckets with overrides are shown in the response. 4353// "FULL" - Include per-location buckets even if they do not have 4354// overrides. When the view is FULL, and a limit has regional or zonal 4355// quota, the limit will include buckets for all regions or zones that 4356// could support overrides, even if none are currently present. In some 4357// cases this will cause the response to become very large; callers that 4358// do not need this extra information should use the BASIC view instead. 4359func (c *ServicesConsumerQuotaMetricsGetCall) View(view string) *ServicesConsumerQuotaMetricsGetCall { 4360 c.urlParams_.Set("view", view) 4361 return c 4362} 4363 4364// Fields allows partial responses to be retrieved. See 4365// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 4366// for more information. 4367func (c *ServicesConsumerQuotaMetricsGetCall) Fields(s ...googleapi.Field) *ServicesConsumerQuotaMetricsGetCall { 4368 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 4369 return c 4370} 4371 4372// IfNoneMatch sets the optional parameter which makes the operation 4373// fail if the object's ETag matches the given value. This is useful for 4374// getting updates only after the object has changed since the last 4375// request. Use googleapi.IsNotModified to check whether the response 4376// error from Do is the result of In-None-Match. 4377func (c *ServicesConsumerQuotaMetricsGetCall) IfNoneMatch(entityTag string) *ServicesConsumerQuotaMetricsGetCall { 4378 c.ifNoneMatch_ = entityTag 4379 return c 4380} 4381 4382// Context sets the context to be used in this call's Do method. Any 4383// pending HTTP request will be aborted if the provided context is 4384// canceled. 4385func (c *ServicesConsumerQuotaMetricsGetCall) Context(ctx context.Context) *ServicesConsumerQuotaMetricsGetCall { 4386 c.ctx_ = ctx 4387 return c 4388} 4389 4390// Header returns an http.Header that can be modified by the caller to 4391// add HTTP headers to the request. 4392func (c *ServicesConsumerQuotaMetricsGetCall) Header() http.Header { 4393 if c.header_ == nil { 4394 c.header_ = make(http.Header) 4395 } 4396 return c.header_ 4397} 4398 4399func (c *ServicesConsumerQuotaMetricsGetCall) doRequest(alt string) (*http.Response, error) { 4400 reqHeaders := make(http.Header) 4401 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210629") 4402 for k, v := range c.header_ { 4403 reqHeaders[k] = v 4404 } 4405 reqHeaders.Set("User-Agent", c.s.userAgent()) 4406 if c.ifNoneMatch_ != "" { 4407 reqHeaders.Set("If-None-Match", c.ifNoneMatch_) 4408 } 4409 var body io.Reader = nil 4410 c.urlParams_.Set("alt", alt) 4411 c.urlParams_.Set("prettyPrint", "false") 4412 urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}") 4413 urls += "?" + c.urlParams_.Encode() 4414 req, err := http.NewRequest("GET", urls, body) 4415 if err != nil { 4416 return nil, err 4417 } 4418 req.Header = reqHeaders 4419 googleapi.Expand(req.URL, map[string]string{ 4420 "name": c.name, 4421 }) 4422 return gensupport.SendRequest(c.ctx_, c.s.client, req) 4423} 4424 4425// Do executes the "serviceconsumermanagement.services.consumerQuotaMetrics.get" call. 4426// Exactly one of *V1Beta1ConsumerQuotaMetric or error will be non-nil. 4427// Any non-2xx status code is an error. Response headers are in either 4428// *V1Beta1ConsumerQuotaMetric.ServerResponse.Header or (if a response 4429// was returned at all) in error.(*googleapi.Error).Header. Use 4430// googleapi.IsNotModified to check whether the returned error was 4431// because http.StatusNotModified was returned. 4432func (c *ServicesConsumerQuotaMetricsGetCall) Do(opts ...googleapi.CallOption) (*V1Beta1ConsumerQuotaMetric, error) { 4433 gensupport.SetOptions(c.urlParams_, opts...) 4434 res, err := c.doRequest("json") 4435 if res != nil && res.StatusCode == http.StatusNotModified { 4436 if res.Body != nil { 4437 res.Body.Close() 4438 } 4439 return nil, &googleapi.Error{ 4440 Code: res.StatusCode, 4441 Header: res.Header, 4442 } 4443 } 4444 if err != nil { 4445 return nil, err 4446 } 4447 defer googleapi.CloseBody(res) 4448 if err := googleapi.CheckResponse(res); err != nil { 4449 return nil, err 4450 } 4451 ret := &V1Beta1ConsumerQuotaMetric{ 4452 ServerResponse: googleapi.ServerResponse{ 4453 Header: res.Header, 4454 HTTPStatusCode: res.StatusCode, 4455 }, 4456 } 4457 target := &ret 4458 if err := gensupport.DecodeResponse(target, res); err != nil { 4459 return nil, err 4460 } 4461 return ret, nil 4462 // { 4463 // "description": "Retrieves a summary of quota information for a specific quota metric.", 4464 // "flatPath": "v1beta1/services/{servicesId}/{servicesId1}/{servicesId2}/consumerQuotaMetrics/{consumerQuotaMetricsId}", 4465 // "httpMethod": "GET", 4466 // "id": "serviceconsumermanagement.services.consumerQuotaMetrics.get", 4467 // "parameterOrder": [ 4468 // "name" 4469 // ], 4470 // "parameters": { 4471 // "name": { 4472 // "description": "The resource name of the quota metric, returned by a ListConsumerQuotaMetrics call. An example name would be: `services/compute.googleapis.com/projects/123/consumerQuotaMetrics/compute.googleapis.com%2Fcpus`", 4473 // "location": "path", 4474 // "pattern": "^services/[^/]+/[^/]+/[^/]+/consumerQuotaMetrics/[^/]+$", 4475 // "required": true, 4476 // "type": "string" 4477 // }, 4478 // "view": { 4479 // "description": "Specifies the level of detail for quota information in the response.", 4480 // "enum": [ 4481 // "QUOTA_VIEW_UNSPECIFIED", 4482 // "BASIC", 4483 // "FULL" 4484 // ], 4485 // "enumDescriptions": [ 4486 // "No quota view specified. Requests that do not specify a quota view will typically default to the BASIC view.", 4487 // "Only buckets with overrides are shown in the response.", 4488 // "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." 4489 // ], 4490 // "location": "query", 4491 // "type": "string" 4492 // } 4493 // }, 4494 // "path": "v1beta1/{+name}", 4495 // "response": { 4496 // "$ref": "V1Beta1ConsumerQuotaMetric" 4497 // }, 4498 // "scopes": [ 4499 // "https://www.googleapis.com/auth/cloud-platform" 4500 // ] 4501 // } 4502 4503} 4504 4505// method id "serviceconsumermanagement.services.consumerQuotaMetrics.importProducerOverrides": 4506 4507type ServicesConsumerQuotaMetricsImportProducerOverridesCall struct { 4508 s *APIService 4509 parent string 4510 v1beta1importproduceroverridesrequest *V1Beta1ImportProducerOverridesRequest 4511 urlParams_ gensupport.URLParams 4512 ctx_ context.Context 4513 header_ http.Header 4514} 4515 4516// ImportProducerOverrides: Create or update multiple producer overrides 4517// atomically, all on the same consumer, but on many different metrics 4518// or limits. The name field in the quota override message should not be 4519// set. 4520// 4521// - parent: The resource name of the consumer. An example name would 4522// be: `services/compute.googleapis.com/projects/123`. 4523func (r *ServicesConsumerQuotaMetricsService) ImportProducerOverrides(parent string, v1beta1importproduceroverridesrequest *V1Beta1ImportProducerOverridesRequest) *ServicesConsumerQuotaMetricsImportProducerOverridesCall { 4524 c := &ServicesConsumerQuotaMetricsImportProducerOverridesCall{s: r.s, urlParams_: make(gensupport.URLParams)} 4525 c.parent = parent 4526 c.v1beta1importproduceroverridesrequest = v1beta1importproduceroverridesrequest 4527 return c 4528} 4529 4530// Fields allows partial responses to be retrieved. See 4531// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 4532// for more information. 4533func (c *ServicesConsumerQuotaMetricsImportProducerOverridesCall) Fields(s ...googleapi.Field) *ServicesConsumerQuotaMetricsImportProducerOverridesCall { 4534 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 4535 return c 4536} 4537 4538// Context sets the context to be used in this call's Do method. Any 4539// pending HTTP request will be aborted if the provided context is 4540// canceled. 4541func (c *ServicesConsumerQuotaMetricsImportProducerOverridesCall) Context(ctx context.Context) *ServicesConsumerQuotaMetricsImportProducerOverridesCall { 4542 c.ctx_ = ctx 4543 return c 4544} 4545 4546// Header returns an http.Header that can be modified by the caller to 4547// add HTTP headers to the request. 4548func (c *ServicesConsumerQuotaMetricsImportProducerOverridesCall) Header() http.Header { 4549 if c.header_ == nil { 4550 c.header_ = make(http.Header) 4551 } 4552 return c.header_ 4553} 4554 4555func (c *ServicesConsumerQuotaMetricsImportProducerOverridesCall) doRequest(alt string) (*http.Response, error) { 4556 reqHeaders := make(http.Header) 4557 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210629") 4558 for k, v := range c.header_ { 4559 reqHeaders[k] = v 4560 } 4561 reqHeaders.Set("User-Agent", c.s.userAgent()) 4562 var body io.Reader = nil 4563 body, err := googleapi.WithoutDataWrapper.JSONReader(c.v1beta1importproduceroverridesrequest) 4564 if err != nil { 4565 return nil, err 4566 } 4567 reqHeaders.Set("Content-Type", "application/json") 4568 c.urlParams_.Set("alt", alt) 4569 c.urlParams_.Set("prettyPrint", "false") 4570 urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}/consumerQuotaMetrics:importProducerOverrides") 4571 urls += "?" + c.urlParams_.Encode() 4572 req, err := http.NewRequest("POST", urls, body) 4573 if err != nil { 4574 return nil, err 4575 } 4576 req.Header = reqHeaders 4577 googleapi.Expand(req.URL, map[string]string{ 4578 "parent": c.parent, 4579 }) 4580 return gensupport.SendRequest(c.ctx_, c.s.client, req) 4581} 4582 4583// Do executes the "serviceconsumermanagement.services.consumerQuotaMetrics.importProducerOverrides" call. 4584// Exactly one of *Operation or error will be non-nil. Any non-2xx 4585// status code is an error. Response headers are in either 4586// *Operation.ServerResponse.Header or (if a response was returned at 4587// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified 4588// to check whether the returned error was because 4589// http.StatusNotModified was returned. 4590func (c *ServicesConsumerQuotaMetricsImportProducerOverridesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { 4591 gensupport.SetOptions(c.urlParams_, opts...) 4592 res, err := c.doRequest("json") 4593 if res != nil && res.StatusCode == http.StatusNotModified { 4594 if res.Body != nil { 4595 res.Body.Close() 4596 } 4597 return nil, &googleapi.Error{ 4598 Code: res.StatusCode, 4599 Header: res.Header, 4600 } 4601 } 4602 if err != nil { 4603 return nil, err 4604 } 4605 defer googleapi.CloseBody(res) 4606 if err := googleapi.CheckResponse(res); err != nil { 4607 return nil, err 4608 } 4609 ret := &Operation{ 4610 ServerResponse: googleapi.ServerResponse{ 4611 Header: res.Header, 4612 HTTPStatusCode: res.StatusCode, 4613 }, 4614 } 4615 target := &ret 4616 if err := gensupport.DecodeResponse(target, res); err != nil { 4617 return nil, err 4618 } 4619 return ret, nil 4620 // { 4621 // "description": "Create or update multiple producer 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.", 4622 // "flatPath": "v1beta1/services/{servicesId}/{servicesId1}/{servicesId2}/consumerQuotaMetrics:importProducerOverrides", 4623 // "httpMethod": "POST", 4624 // "id": "serviceconsumermanagement.services.consumerQuotaMetrics.importProducerOverrides", 4625 // "parameterOrder": [ 4626 // "parent" 4627 // ], 4628 // "parameters": { 4629 // "parent": { 4630 // "description": "The resource name of the consumer. An example name would be: `services/compute.googleapis.com/projects/123`", 4631 // "location": "path", 4632 // "pattern": "^services/[^/]+/[^/]+/[^/]+$", 4633 // "required": true, 4634 // "type": "string" 4635 // } 4636 // }, 4637 // "path": "v1beta1/{+parent}/consumerQuotaMetrics:importProducerOverrides", 4638 // "request": { 4639 // "$ref": "V1Beta1ImportProducerOverridesRequest" 4640 // }, 4641 // "response": { 4642 // "$ref": "Operation" 4643 // }, 4644 // "scopes": [ 4645 // "https://www.googleapis.com/auth/cloud-platform" 4646 // ] 4647 // } 4648 4649} 4650 4651// method id "serviceconsumermanagement.services.consumerQuotaMetrics.list": 4652 4653type ServicesConsumerQuotaMetricsListCall struct { 4654 s *APIService 4655 parent string 4656 urlParams_ gensupport.URLParams 4657 ifNoneMatch_ string 4658 ctx_ context.Context 4659 header_ http.Header 4660} 4661 4662// List: Retrieves a summary of all quota information about this 4663// consumer that is visible to the service producer, for each quota 4664// metric defined by the service. Each metric includes information about 4665// all of its defined limits. Each limit includes the limit 4666// configuration (quota unit, preciseness, default value), the current 4667// effective limit value, and all of the overrides applied to the limit. 4668// 4669// - parent: Parent of the quotas resource. An example parent would be: 4670// `services/serviceconsumermanagement.googleapis.com/projects/123`. 4671func (r *ServicesConsumerQuotaMetricsService) List(parent string) *ServicesConsumerQuotaMetricsListCall { 4672 c := &ServicesConsumerQuotaMetricsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} 4673 c.parent = parent 4674 return c 4675} 4676 4677// PageSize sets the optional parameter "pageSize": Requested size of 4678// the next page of data. 4679func (c *ServicesConsumerQuotaMetricsListCall) PageSize(pageSize int64) *ServicesConsumerQuotaMetricsListCall { 4680 c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) 4681 return c 4682} 4683 4684// PageToken sets the optional parameter "pageToken": Token identifying 4685// which result to start with; returned by a previous list call. 4686func (c *ServicesConsumerQuotaMetricsListCall) PageToken(pageToken string) *ServicesConsumerQuotaMetricsListCall { 4687 c.urlParams_.Set("pageToken", pageToken) 4688 return c 4689} 4690 4691// View sets the optional parameter "view": Specifies the level of 4692// detail for quota information in the response. 4693// 4694// Possible values: 4695// "QUOTA_VIEW_UNSPECIFIED" - No quota view specified. Requests that 4696// do not specify a quota view will typically default to the BASIC view. 4697// "BASIC" - Only buckets with overrides are shown in the response. 4698// "FULL" - Include per-location buckets even if they do not have 4699// overrides. When the view is FULL, and a limit has regional or zonal 4700// quota, the limit will include buckets for all regions or zones that 4701// could support overrides, even if none are currently present. In some 4702// cases this will cause the response to become very large; callers that 4703// do not need this extra information should use the BASIC view instead. 4704func (c *ServicesConsumerQuotaMetricsListCall) View(view string) *ServicesConsumerQuotaMetricsListCall { 4705 c.urlParams_.Set("view", view) 4706 return c 4707} 4708 4709// Fields allows partial responses to be retrieved. See 4710// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 4711// for more information. 4712func (c *ServicesConsumerQuotaMetricsListCall) Fields(s ...googleapi.Field) *ServicesConsumerQuotaMetricsListCall { 4713 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 4714 return c 4715} 4716 4717// IfNoneMatch sets the optional parameter which makes the operation 4718// fail if the object's ETag matches the given value. This is useful for 4719// getting updates only after the object has changed since the last 4720// request. Use googleapi.IsNotModified to check whether the response 4721// error from Do is the result of In-None-Match. 4722func (c *ServicesConsumerQuotaMetricsListCall) IfNoneMatch(entityTag string) *ServicesConsumerQuotaMetricsListCall { 4723 c.ifNoneMatch_ = entityTag 4724 return c 4725} 4726 4727// Context sets the context to be used in this call's Do method. Any 4728// pending HTTP request will be aborted if the provided context is 4729// canceled. 4730func (c *ServicesConsumerQuotaMetricsListCall) Context(ctx context.Context) *ServicesConsumerQuotaMetricsListCall { 4731 c.ctx_ = ctx 4732 return c 4733} 4734 4735// Header returns an http.Header that can be modified by the caller to 4736// add HTTP headers to the request. 4737func (c *ServicesConsumerQuotaMetricsListCall) Header() http.Header { 4738 if c.header_ == nil { 4739 c.header_ = make(http.Header) 4740 } 4741 return c.header_ 4742} 4743 4744func (c *ServicesConsumerQuotaMetricsListCall) doRequest(alt string) (*http.Response, error) { 4745 reqHeaders := make(http.Header) 4746 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210629") 4747 for k, v := range c.header_ { 4748 reqHeaders[k] = v 4749 } 4750 reqHeaders.Set("User-Agent", c.s.userAgent()) 4751 if c.ifNoneMatch_ != "" { 4752 reqHeaders.Set("If-None-Match", c.ifNoneMatch_) 4753 } 4754 var body io.Reader = nil 4755 c.urlParams_.Set("alt", alt) 4756 c.urlParams_.Set("prettyPrint", "false") 4757 urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}/consumerQuotaMetrics") 4758 urls += "?" + c.urlParams_.Encode() 4759 req, err := http.NewRequest("GET", urls, body) 4760 if err != nil { 4761 return nil, err 4762 } 4763 req.Header = reqHeaders 4764 googleapi.Expand(req.URL, map[string]string{ 4765 "parent": c.parent, 4766 }) 4767 return gensupport.SendRequest(c.ctx_, c.s.client, req) 4768} 4769 4770// Do executes the "serviceconsumermanagement.services.consumerQuotaMetrics.list" call. 4771// Exactly one of *V1Beta1ListConsumerQuotaMetricsResponse or error will 4772// be non-nil. Any non-2xx status code is an error. Response headers are 4773// in either 4774// *V1Beta1ListConsumerQuotaMetricsResponse.ServerResponse.Header or (if 4775// a response was returned at all) in error.(*googleapi.Error).Header. 4776// Use googleapi.IsNotModified to check whether the returned error was 4777// because http.StatusNotModified was returned. 4778func (c *ServicesConsumerQuotaMetricsListCall) Do(opts ...googleapi.CallOption) (*V1Beta1ListConsumerQuotaMetricsResponse, error) { 4779 gensupport.SetOptions(c.urlParams_, opts...) 4780 res, err := c.doRequest("json") 4781 if res != nil && res.StatusCode == http.StatusNotModified { 4782 if res.Body != nil { 4783 res.Body.Close() 4784 } 4785 return nil, &googleapi.Error{ 4786 Code: res.StatusCode, 4787 Header: res.Header, 4788 } 4789 } 4790 if err != nil { 4791 return nil, err 4792 } 4793 defer googleapi.CloseBody(res) 4794 if err := googleapi.CheckResponse(res); err != nil { 4795 return nil, err 4796 } 4797 ret := &V1Beta1ListConsumerQuotaMetricsResponse{ 4798 ServerResponse: googleapi.ServerResponse{ 4799 Header: res.Header, 4800 HTTPStatusCode: res.StatusCode, 4801 }, 4802 } 4803 target := &ret 4804 if err := gensupport.DecodeResponse(target, res); err != nil { 4805 return nil, err 4806 } 4807 return ret, nil 4808 // { 4809 // "description": "Retrieves a summary of all quota information about this consumer that is visible to the service producer, for each quota metric defined by the service. 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.", 4810 // "flatPath": "v1beta1/services/{servicesId}/{servicesId1}/{servicesId2}/consumerQuotaMetrics", 4811 // "httpMethod": "GET", 4812 // "id": "serviceconsumermanagement.services.consumerQuotaMetrics.list", 4813 // "parameterOrder": [ 4814 // "parent" 4815 // ], 4816 // "parameters": { 4817 // "pageSize": { 4818 // "description": "Requested size of the next page of data.", 4819 // "format": "int32", 4820 // "location": "query", 4821 // "type": "integer" 4822 // }, 4823 // "pageToken": { 4824 // "description": "Token identifying which result to start with; returned by a previous list call.", 4825 // "location": "query", 4826 // "type": "string" 4827 // }, 4828 // "parent": { 4829 // "description": "Parent of the quotas resource. An example parent would be: `services/serviceconsumermanagement.googleapis.com/projects/123`", 4830 // "location": "path", 4831 // "pattern": "^services/[^/]+/[^/]+/[^/]+$", 4832 // "required": true, 4833 // "type": "string" 4834 // }, 4835 // "view": { 4836 // "description": "Specifies the level of detail for quota information in the response.", 4837 // "enum": [ 4838 // "QUOTA_VIEW_UNSPECIFIED", 4839 // "BASIC", 4840 // "FULL" 4841 // ], 4842 // "enumDescriptions": [ 4843 // "No quota view specified. Requests that do not specify a quota view will typically default to the BASIC view.", 4844 // "Only buckets with overrides are shown in the response.", 4845 // "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." 4846 // ], 4847 // "location": "query", 4848 // "type": "string" 4849 // } 4850 // }, 4851 // "path": "v1beta1/{+parent}/consumerQuotaMetrics", 4852 // "response": { 4853 // "$ref": "V1Beta1ListConsumerQuotaMetricsResponse" 4854 // }, 4855 // "scopes": [ 4856 // "https://www.googleapis.com/auth/cloud-platform" 4857 // ] 4858 // } 4859 4860} 4861 4862// Pages invokes f for each page of results. 4863// A non-nil error returned from f will halt the iteration. 4864// The provided context supersedes any context provided to the Context method. 4865func (c *ServicesConsumerQuotaMetricsListCall) Pages(ctx context.Context, f func(*V1Beta1ListConsumerQuotaMetricsResponse) error) error { 4866 c.ctx_ = ctx 4867 defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point 4868 for { 4869 x, err := c.Do() 4870 if err != nil { 4871 return err 4872 } 4873 if err := f(x); err != nil { 4874 return err 4875 } 4876 if x.NextPageToken == "" { 4877 return nil 4878 } 4879 c.PageToken(x.NextPageToken) 4880 } 4881} 4882 4883// method id "serviceconsumermanagement.services.consumerQuotaMetrics.limits.get": 4884 4885type ServicesConsumerQuotaMetricsLimitsGetCall struct { 4886 s *APIService 4887 name string 4888 urlParams_ gensupport.URLParams 4889 ifNoneMatch_ string 4890 ctx_ context.Context 4891 header_ http.Header 4892} 4893 4894// Get: Retrieves a summary of quota information for a specific quota 4895// limit. 4896// 4897// - name: The resource name of the quota limit, returned by a 4898// ListConsumerQuotaMetrics or GetConsumerQuotaMetric call. An example 4899// name would be: 4900// `services/compute.googleapis.com/projects/123/consumerQuotaMetrics/c 4901// ompute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion`. 4902func (r *ServicesConsumerQuotaMetricsLimitsService) Get(name string) *ServicesConsumerQuotaMetricsLimitsGetCall { 4903 c := &ServicesConsumerQuotaMetricsLimitsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} 4904 c.name = name 4905 return c 4906} 4907 4908// View sets the optional parameter "view": Specifies the level of 4909// detail for quota information in the response. 4910// 4911// Possible values: 4912// "QUOTA_VIEW_UNSPECIFIED" - No quota view specified. Requests that 4913// do not specify a quota view will typically default to the BASIC view. 4914// "BASIC" - Only buckets with overrides are shown in the response. 4915// "FULL" - Include per-location buckets even if they do not have 4916// overrides. When the view is FULL, and a limit has regional or zonal 4917// quota, the limit will include buckets for all regions or zones that 4918// could support overrides, even if none are currently present. In some 4919// cases this will cause the response to become very large; callers that 4920// do not need this extra information should use the BASIC view instead. 4921func (c *ServicesConsumerQuotaMetricsLimitsGetCall) View(view string) *ServicesConsumerQuotaMetricsLimitsGetCall { 4922 c.urlParams_.Set("view", view) 4923 return c 4924} 4925 4926// Fields allows partial responses to be retrieved. See 4927// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 4928// for more information. 4929func (c *ServicesConsumerQuotaMetricsLimitsGetCall) Fields(s ...googleapi.Field) *ServicesConsumerQuotaMetricsLimitsGetCall { 4930 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 4931 return c 4932} 4933 4934// IfNoneMatch sets the optional parameter which makes the operation 4935// fail if the object's ETag matches the given value. This is useful for 4936// getting updates only after the object has changed since the last 4937// request. Use googleapi.IsNotModified to check whether the response 4938// error from Do is the result of In-None-Match. 4939func (c *ServicesConsumerQuotaMetricsLimitsGetCall) IfNoneMatch(entityTag string) *ServicesConsumerQuotaMetricsLimitsGetCall { 4940 c.ifNoneMatch_ = entityTag 4941 return c 4942} 4943 4944// Context sets the context to be used in this call's Do method. Any 4945// pending HTTP request will be aborted if the provided context is 4946// canceled. 4947func (c *ServicesConsumerQuotaMetricsLimitsGetCall) Context(ctx context.Context) *ServicesConsumerQuotaMetricsLimitsGetCall { 4948 c.ctx_ = ctx 4949 return c 4950} 4951 4952// Header returns an http.Header that can be modified by the caller to 4953// add HTTP headers to the request. 4954func (c *ServicesConsumerQuotaMetricsLimitsGetCall) Header() http.Header { 4955 if c.header_ == nil { 4956 c.header_ = make(http.Header) 4957 } 4958 return c.header_ 4959} 4960 4961func (c *ServicesConsumerQuotaMetricsLimitsGetCall) doRequest(alt string) (*http.Response, error) { 4962 reqHeaders := make(http.Header) 4963 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210629") 4964 for k, v := range c.header_ { 4965 reqHeaders[k] = v 4966 } 4967 reqHeaders.Set("User-Agent", c.s.userAgent()) 4968 if c.ifNoneMatch_ != "" { 4969 reqHeaders.Set("If-None-Match", c.ifNoneMatch_) 4970 } 4971 var body io.Reader = nil 4972 c.urlParams_.Set("alt", alt) 4973 c.urlParams_.Set("prettyPrint", "false") 4974 urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}") 4975 urls += "?" + c.urlParams_.Encode() 4976 req, err := http.NewRequest("GET", urls, body) 4977 if err != nil { 4978 return nil, err 4979 } 4980 req.Header = reqHeaders 4981 googleapi.Expand(req.URL, map[string]string{ 4982 "name": c.name, 4983 }) 4984 return gensupport.SendRequest(c.ctx_, c.s.client, req) 4985} 4986 4987// Do executes the "serviceconsumermanagement.services.consumerQuotaMetrics.limits.get" call. 4988// Exactly one of *V1Beta1ConsumerQuotaLimit or error will be non-nil. 4989// Any non-2xx status code is an error. Response headers are in either 4990// *V1Beta1ConsumerQuotaLimit.ServerResponse.Header or (if a response 4991// was returned at all) in error.(*googleapi.Error).Header. Use 4992// googleapi.IsNotModified to check whether the returned error was 4993// because http.StatusNotModified was returned. 4994func (c *ServicesConsumerQuotaMetricsLimitsGetCall) Do(opts ...googleapi.CallOption) (*V1Beta1ConsumerQuotaLimit, error) { 4995 gensupport.SetOptions(c.urlParams_, opts...) 4996 res, err := c.doRequest("json") 4997 if res != nil && res.StatusCode == http.StatusNotModified { 4998 if res.Body != nil { 4999 res.Body.Close() 5000 } 5001 return nil, &googleapi.Error{ 5002 Code: res.StatusCode, 5003 Header: res.Header, 5004 } 5005 } 5006 if err != nil { 5007 return nil, err 5008 } 5009 defer googleapi.CloseBody(res) 5010 if err := googleapi.CheckResponse(res); err != nil { 5011 return nil, err 5012 } 5013 ret := &V1Beta1ConsumerQuotaLimit{ 5014 ServerResponse: googleapi.ServerResponse{ 5015 Header: res.Header, 5016 HTTPStatusCode: res.StatusCode, 5017 }, 5018 } 5019 target := &ret 5020 if err := gensupport.DecodeResponse(target, res); err != nil { 5021 return nil, err 5022 } 5023 return ret, nil 5024 // { 5025 // "description": "Retrieves a summary of quota information for a specific quota limit.", 5026 // "flatPath": "v1beta1/services/{servicesId}/{servicesId1}/{servicesId2}/consumerQuotaMetrics/{consumerQuotaMetricsId}/limits/{limitsId}", 5027 // "httpMethod": "GET", 5028 // "id": "serviceconsumermanagement.services.consumerQuotaMetrics.limits.get", 5029 // "parameterOrder": [ 5030 // "name" 5031 // ], 5032 // "parameters": { 5033 // "name": { 5034 // "description": "The resource name of the quota limit, returned by a ListConsumerQuotaMetrics or GetConsumerQuotaMetric call. An example name would be: `services/compute.googleapis.com/projects/123/consumerQuotaMetrics/compute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion`", 5035 // "location": "path", 5036 // "pattern": "^services/[^/]+/[^/]+/[^/]+/consumerQuotaMetrics/[^/]+/limits/[^/]+$", 5037 // "required": true, 5038 // "type": "string" 5039 // }, 5040 // "view": { 5041 // "description": "Specifies the level of detail for quota information in the response.", 5042 // "enum": [ 5043 // "QUOTA_VIEW_UNSPECIFIED", 5044 // "BASIC", 5045 // "FULL" 5046 // ], 5047 // "enumDescriptions": [ 5048 // "No quota view specified. Requests that do not specify a quota view will typically default to the BASIC view.", 5049 // "Only buckets with overrides are shown in the response.", 5050 // "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." 5051 // ], 5052 // "location": "query", 5053 // "type": "string" 5054 // } 5055 // }, 5056 // "path": "v1beta1/{+name}", 5057 // "response": { 5058 // "$ref": "V1Beta1ConsumerQuotaLimit" 5059 // }, 5060 // "scopes": [ 5061 // "https://www.googleapis.com/auth/cloud-platform" 5062 // ] 5063 // } 5064 5065} 5066 5067// method id "serviceconsumermanagement.services.consumerQuotaMetrics.limits.producerOverrides.create": 5068 5069type ServicesConsumerQuotaMetricsLimitsProducerOverridesCreateCall struct { 5070 s *APIService 5071 parent string 5072 v1beta1quotaoverride *V1Beta1QuotaOverride 5073 urlParams_ gensupport.URLParams 5074 ctx_ context.Context 5075 header_ http.Header 5076} 5077 5078// Create: Creates a producer override. A producer override is applied 5079// by the owner or administrator of a service to increase or decrease 5080// the amount of quota a consumer of the service is allowed to use. To 5081// create multiple overrides at once, use ImportProducerOverrides 5082// instead. If an override with the specified dimensions already exists, 5083// this call will fail. To overwrite an existing override if one is 5084// already present ("upsert" semantics), use ImportProducerOverrides 5085// instead. 5086// 5087// - parent: The resource name of the parent quota limit, returned by a 5088// ListConsumerQuotaMetrics or GetConsumerQuotaMetric call. An example 5089// name would be: 5090// `services/compute.googleapis.com/projects/123/consumerQuotaMetrics/c 5091// ompute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion`. 5092func (r *ServicesConsumerQuotaMetricsLimitsProducerOverridesService) Create(parent string, v1beta1quotaoverride *V1Beta1QuotaOverride) *ServicesConsumerQuotaMetricsLimitsProducerOverridesCreateCall { 5093 c := &ServicesConsumerQuotaMetricsLimitsProducerOverridesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)} 5094 c.parent = parent 5095 c.v1beta1quotaoverride = v1beta1quotaoverride 5096 return c 5097} 5098 5099// Force sets the optional parameter "force": Whether to force the 5100// creation of the quota override. Setting the force parameter to 'true' 5101// ignores all quota safety checks that would fail the request. 5102// QuotaSafetyCheck lists all such validations. 5103func (c *ServicesConsumerQuotaMetricsLimitsProducerOverridesCreateCall) Force(force bool) *ServicesConsumerQuotaMetricsLimitsProducerOverridesCreateCall { 5104 c.urlParams_.Set("force", fmt.Sprint(force)) 5105 return c 5106} 5107 5108// ForceOnly sets the optional parameter "forceOnly": The list of quota 5109// safety checks to ignore before the override mutation. Unlike 'force' 5110// field that ignores all the quota safety checks, the 'force_only' 5111// field ignores only the specified checks; other checks are still 5112// enforced. The 'force' and 'force_only' fields cannot both be set. 5113// 5114// Possible values: 5115// "QUOTA_SAFETY_CHECK_UNSPECIFIED" - Unspecified quota safety check. 5116// "LIMIT_DECREASE_BELOW_USAGE" - Validates that a quota mutation 5117// would not cause the consumer's effective limit to be lower than the 5118// consumer's quota usage. 5119// "LIMIT_DECREASE_PERCENTAGE_TOO_HIGH" - Validates that a quota 5120// mutation would not cause the consumer's effective limit to decrease 5121// by more than 10 percent. 5122func (c *ServicesConsumerQuotaMetricsLimitsProducerOverridesCreateCall) ForceOnly(forceOnly ...string) *ServicesConsumerQuotaMetricsLimitsProducerOverridesCreateCall { 5123 c.urlParams_.SetMulti("forceOnly", append([]string{}, forceOnly...)) 5124 return c 5125} 5126 5127// Fields allows partial responses to be retrieved. See 5128// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 5129// for more information. 5130func (c *ServicesConsumerQuotaMetricsLimitsProducerOverridesCreateCall) Fields(s ...googleapi.Field) *ServicesConsumerQuotaMetricsLimitsProducerOverridesCreateCall { 5131 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 5132 return c 5133} 5134 5135// Context sets the context to be used in this call's Do method. Any 5136// pending HTTP request will be aborted if the provided context is 5137// canceled. 5138func (c *ServicesConsumerQuotaMetricsLimitsProducerOverridesCreateCall) Context(ctx context.Context) *ServicesConsumerQuotaMetricsLimitsProducerOverridesCreateCall { 5139 c.ctx_ = ctx 5140 return c 5141} 5142 5143// Header returns an http.Header that can be modified by the caller to 5144// add HTTP headers to the request. 5145func (c *ServicesConsumerQuotaMetricsLimitsProducerOverridesCreateCall) Header() http.Header { 5146 if c.header_ == nil { 5147 c.header_ = make(http.Header) 5148 } 5149 return c.header_ 5150} 5151 5152func (c *ServicesConsumerQuotaMetricsLimitsProducerOverridesCreateCall) doRequest(alt string) (*http.Response, error) { 5153 reqHeaders := make(http.Header) 5154 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210629") 5155 for k, v := range c.header_ { 5156 reqHeaders[k] = v 5157 } 5158 reqHeaders.Set("User-Agent", c.s.userAgent()) 5159 var body io.Reader = nil 5160 body, err := googleapi.WithoutDataWrapper.JSONReader(c.v1beta1quotaoverride) 5161 if err != nil { 5162 return nil, err 5163 } 5164 reqHeaders.Set("Content-Type", "application/json") 5165 c.urlParams_.Set("alt", alt) 5166 c.urlParams_.Set("prettyPrint", "false") 5167 urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}/producerOverrides") 5168 urls += "?" + c.urlParams_.Encode() 5169 req, err := http.NewRequest("POST", urls, body) 5170 if err != nil { 5171 return nil, err 5172 } 5173 req.Header = reqHeaders 5174 googleapi.Expand(req.URL, map[string]string{ 5175 "parent": c.parent, 5176 }) 5177 return gensupport.SendRequest(c.ctx_, c.s.client, req) 5178} 5179 5180// Do executes the "serviceconsumermanagement.services.consumerQuotaMetrics.limits.producerOverrides.create" call. 5181// Exactly one of *Operation or error will be non-nil. Any non-2xx 5182// status code is an error. Response headers are in either 5183// *Operation.ServerResponse.Header or (if a response was returned at 5184// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified 5185// to check whether the returned error was because 5186// http.StatusNotModified was returned. 5187func (c *ServicesConsumerQuotaMetricsLimitsProducerOverridesCreateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { 5188 gensupport.SetOptions(c.urlParams_, opts...) 5189 res, err := c.doRequest("json") 5190 if res != nil && res.StatusCode == http.StatusNotModified { 5191 if res.Body != nil { 5192 res.Body.Close() 5193 } 5194 return nil, &googleapi.Error{ 5195 Code: res.StatusCode, 5196 Header: res.Header, 5197 } 5198 } 5199 if err != nil { 5200 return nil, err 5201 } 5202 defer googleapi.CloseBody(res) 5203 if err := googleapi.CheckResponse(res); err != nil { 5204 return nil, err 5205 } 5206 ret := &Operation{ 5207 ServerResponse: googleapi.ServerResponse{ 5208 Header: res.Header, 5209 HTTPStatusCode: res.StatusCode, 5210 }, 5211 } 5212 target := &ret 5213 if err := gensupport.DecodeResponse(target, res); err != nil { 5214 return nil, err 5215 } 5216 return ret, nil 5217 // { 5218 // "description": "Creates a producer override. A producer override is applied by the owner or administrator of a service to increase or decrease the amount of quota a consumer of the service is allowed to use. To create multiple overrides at once, use ImportProducerOverrides instead. If an override with the specified dimensions already exists, this call will fail. To overwrite an existing override if one is already present (\"upsert\" semantics), use ImportProducerOverrides instead.", 5219 // "flatPath": "v1beta1/services/{servicesId}/{servicesId1}/{servicesId2}/consumerQuotaMetrics/{consumerQuotaMetricsId}/limits/{limitsId}/producerOverrides", 5220 // "httpMethod": "POST", 5221 // "id": "serviceconsumermanagement.services.consumerQuotaMetrics.limits.producerOverrides.create", 5222 // "parameterOrder": [ 5223 // "parent" 5224 // ], 5225 // "parameters": { 5226 // "force": { 5227 // "description": "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.", 5228 // "location": "query", 5229 // "type": "boolean" 5230 // }, 5231 // "forceOnly": { 5232 // "description": "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.", 5233 // "enum": [ 5234 // "QUOTA_SAFETY_CHECK_UNSPECIFIED", 5235 // "LIMIT_DECREASE_BELOW_USAGE", 5236 // "LIMIT_DECREASE_PERCENTAGE_TOO_HIGH" 5237 // ], 5238 // "enumDescriptions": [ 5239 // "Unspecified quota safety check.", 5240 // "Validates that a quota mutation would not cause the consumer's effective limit to be lower than the consumer's quota usage.", 5241 // "Validates that a quota mutation would not cause the consumer's effective limit to decrease by more than 10 percent." 5242 // ], 5243 // "location": "query", 5244 // "repeated": true, 5245 // "type": "string" 5246 // }, 5247 // "parent": { 5248 // "description": "The resource name of the parent quota limit, returned by a ListConsumerQuotaMetrics or GetConsumerQuotaMetric call. An example name would be: `services/compute.googleapis.com/projects/123/consumerQuotaMetrics/compute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion`", 5249 // "location": "path", 5250 // "pattern": "^services/[^/]+/[^/]+/[^/]+/consumerQuotaMetrics/[^/]+/limits/[^/]+$", 5251 // "required": true, 5252 // "type": "string" 5253 // } 5254 // }, 5255 // "path": "v1beta1/{+parent}/producerOverrides", 5256 // "request": { 5257 // "$ref": "V1Beta1QuotaOverride" 5258 // }, 5259 // "response": { 5260 // "$ref": "Operation" 5261 // }, 5262 // "scopes": [ 5263 // "https://www.googleapis.com/auth/cloud-platform" 5264 // ] 5265 // } 5266 5267} 5268 5269// method id "serviceconsumermanagement.services.consumerQuotaMetrics.limits.producerOverrides.delete": 5270 5271type ServicesConsumerQuotaMetricsLimitsProducerOverridesDeleteCall struct { 5272 s *APIService 5273 name string 5274 urlParams_ gensupport.URLParams 5275 ctx_ context.Context 5276 header_ http.Header 5277} 5278 5279// Delete: Deletes a producer override. 5280// 5281// - name: The resource name of the override to delete. An example name 5282// would be: 5283// `services/compute.googleapis.com/projects/123/consumerQuotaMetrics/c 5284// ompute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion/producerOver 5285// rides/4a3f2c1d`. 5286func (r *ServicesConsumerQuotaMetricsLimitsProducerOverridesService) Delete(name string) *ServicesConsumerQuotaMetricsLimitsProducerOverridesDeleteCall { 5287 c := &ServicesConsumerQuotaMetricsLimitsProducerOverridesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} 5288 c.name = name 5289 return c 5290} 5291 5292// Force sets the optional parameter "force": Whether to force the 5293// deletion of the quota override. Setting the force parameter to 'true' 5294// ignores all quota safety checks that would fail the request. 5295// QuotaSafetyCheck lists all such validations. 5296func (c *ServicesConsumerQuotaMetricsLimitsProducerOverridesDeleteCall) Force(force bool) *ServicesConsumerQuotaMetricsLimitsProducerOverridesDeleteCall { 5297 c.urlParams_.Set("force", fmt.Sprint(force)) 5298 return c 5299} 5300 5301// ForceOnly sets the optional parameter "forceOnly": The list of quota 5302// safety checks to ignore before the override mutation. Unlike 'force' 5303// field that ignores all the quota safety checks, the 'force_only' 5304// field ignores only the specified checks; other checks are still 5305// enforced. The 'force' and 'force_only' fields cannot both be set. 5306// 5307// Possible values: 5308// "QUOTA_SAFETY_CHECK_UNSPECIFIED" - Unspecified quota safety check. 5309// "LIMIT_DECREASE_BELOW_USAGE" - Validates that a quota mutation 5310// would not cause the consumer's effective limit to be lower than the 5311// consumer's quota usage. 5312// "LIMIT_DECREASE_PERCENTAGE_TOO_HIGH" - Validates that a quota 5313// mutation would not cause the consumer's effective limit to decrease 5314// by more than 10 percent. 5315func (c *ServicesConsumerQuotaMetricsLimitsProducerOverridesDeleteCall) ForceOnly(forceOnly ...string) *ServicesConsumerQuotaMetricsLimitsProducerOverridesDeleteCall { 5316 c.urlParams_.SetMulti("forceOnly", append([]string{}, forceOnly...)) 5317 return c 5318} 5319 5320// Fields allows partial responses to be retrieved. See 5321// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 5322// for more information. 5323func (c *ServicesConsumerQuotaMetricsLimitsProducerOverridesDeleteCall) Fields(s ...googleapi.Field) *ServicesConsumerQuotaMetricsLimitsProducerOverridesDeleteCall { 5324 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 5325 return c 5326} 5327 5328// Context sets the context to be used in this call's Do method. Any 5329// pending HTTP request will be aborted if the provided context is 5330// canceled. 5331func (c *ServicesConsumerQuotaMetricsLimitsProducerOverridesDeleteCall) Context(ctx context.Context) *ServicesConsumerQuotaMetricsLimitsProducerOverridesDeleteCall { 5332 c.ctx_ = ctx 5333 return c 5334} 5335 5336// Header returns an http.Header that can be modified by the caller to 5337// add HTTP headers to the request. 5338func (c *ServicesConsumerQuotaMetricsLimitsProducerOverridesDeleteCall) Header() http.Header { 5339 if c.header_ == nil { 5340 c.header_ = make(http.Header) 5341 } 5342 return c.header_ 5343} 5344 5345func (c *ServicesConsumerQuotaMetricsLimitsProducerOverridesDeleteCall) doRequest(alt string) (*http.Response, error) { 5346 reqHeaders := make(http.Header) 5347 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210629") 5348 for k, v := range c.header_ { 5349 reqHeaders[k] = v 5350 } 5351 reqHeaders.Set("User-Agent", c.s.userAgent()) 5352 var body io.Reader = nil 5353 c.urlParams_.Set("alt", alt) 5354 c.urlParams_.Set("prettyPrint", "false") 5355 urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}") 5356 urls += "?" + c.urlParams_.Encode() 5357 req, err := http.NewRequest("DELETE", urls, body) 5358 if err != nil { 5359 return nil, err 5360 } 5361 req.Header = reqHeaders 5362 googleapi.Expand(req.URL, map[string]string{ 5363 "name": c.name, 5364 }) 5365 return gensupport.SendRequest(c.ctx_, c.s.client, req) 5366} 5367 5368// Do executes the "serviceconsumermanagement.services.consumerQuotaMetrics.limits.producerOverrides.delete" call. 5369// Exactly one of *Operation or error will be non-nil. Any non-2xx 5370// status code is an error. Response headers are in either 5371// *Operation.ServerResponse.Header or (if a response was returned at 5372// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified 5373// to check whether the returned error was because 5374// http.StatusNotModified was returned. 5375func (c *ServicesConsumerQuotaMetricsLimitsProducerOverridesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { 5376 gensupport.SetOptions(c.urlParams_, opts...) 5377 res, err := c.doRequest("json") 5378 if res != nil && res.StatusCode == http.StatusNotModified { 5379 if res.Body != nil { 5380 res.Body.Close() 5381 } 5382 return nil, &googleapi.Error{ 5383 Code: res.StatusCode, 5384 Header: res.Header, 5385 } 5386 } 5387 if err != nil { 5388 return nil, err 5389 } 5390 defer googleapi.CloseBody(res) 5391 if err := googleapi.CheckResponse(res); err != nil { 5392 return nil, err 5393 } 5394 ret := &Operation{ 5395 ServerResponse: googleapi.ServerResponse{ 5396 Header: res.Header, 5397 HTTPStatusCode: res.StatusCode, 5398 }, 5399 } 5400 target := &ret 5401 if err := gensupport.DecodeResponse(target, res); err != nil { 5402 return nil, err 5403 } 5404 return ret, nil 5405 // { 5406 // "description": "Deletes a producer override.", 5407 // "flatPath": "v1beta1/services/{servicesId}/{servicesId1}/{servicesId2}/consumerQuotaMetrics/{consumerQuotaMetricsId}/limits/{limitsId}/producerOverrides/{producerOverridesId}", 5408 // "httpMethod": "DELETE", 5409 // "id": "serviceconsumermanagement.services.consumerQuotaMetrics.limits.producerOverrides.delete", 5410 // "parameterOrder": [ 5411 // "name" 5412 // ], 5413 // "parameters": { 5414 // "force": { 5415 // "description": "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.", 5416 // "location": "query", 5417 // "type": "boolean" 5418 // }, 5419 // "forceOnly": { 5420 // "description": "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.", 5421 // "enum": [ 5422 // "QUOTA_SAFETY_CHECK_UNSPECIFIED", 5423 // "LIMIT_DECREASE_BELOW_USAGE", 5424 // "LIMIT_DECREASE_PERCENTAGE_TOO_HIGH" 5425 // ], 5426 // "enumDescriptions": [ 5427 // "Unspecified quota safety check.", 5428 // "Validates that a quota mutation would not cause the consumer's effective limit to be lower than the consumer's quota usage.", 5429 // "Validates that a quota mutation would not cause the consumer's effective limit to decrease by more than 10 percent." 5430 // ], 5431 // "location": "query", 5432 // "repeated": true, 5433 // "type": "string" 5434 // }, 5435 // "name": { 5436 // "description": "The resource name of the override to delete. An example name would be: `services/compute.googleapis.com/projects/123/consumerQuotaMetrics/compute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion/producerOverrides/4a3f2c1d`", 5437 // "location": "path", 5438 // "pattern": "^services/[^/]+/[^/]+/[^/]+/consumerQuotaMetrics/[^/]+/limits/[^/]+/producerOverrides/[^/]+$", 5439 // "required": true, 5440 // "type": "string" 5441 // } 5442 // }, 5443 // "path": "v1beta1/{+name}", 5444 // "response": { 5445 // "$ref": "Operation" 5446 // }, 5447 // "scopes": [ 5448 // "https://www.googleapis.com/auth/cloud-platform" 5449 // ] 5450 // } 5451 5452} 5453 5454// method id "serviceconsumermanagement.services.consumerQuotaMetrics.limits.producerOverrides.list": 5455 5456type ServicesConsumerQuotaMetricsLimitsProducerOverridesListCall struct { 5457 s *APIService 5458 parent string 5459 urlParams_ gensupport.URLParams 5460 ifNoneMatch_ string 5461 ctx_ context.Context 5462 header_ http.Header 5463} 5464 5465// List: Lists all producer overrides on this limit. 5466// 5467// - parent: The resource name of the parent quota limit, returned by a 5468// ListConsumerQuotaMetrics or GetConsumerQuotaMetric call. An example 5469// name would be: 5470// `services/compute.googleapis.com/projects/123/consumerQuotaMetrics/c 5471// ompute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion`. 5472func (r *ServicesConsumerQuotaMetricsLimitsProducerOverridesService) List(parent string) *ServicesConsumerQuotaMetricsLimitsProducerOverridesListCall { 5473 c := &ServicesConsumerQuotaMetricsLimitsProducerOverridesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} 5474 c.parent = parent 5475 return c 5476} 5477 5478// PageSize sets the optional parameter "pageSize": Requested size of 5479// the next page of data. 5480func (c *ServicesConsumerQuotaMetricsLimitsProducerOverridesListCall) PageSize(pageSize int64) *ServicesConsumerQuotaMetricsLimitsProducerOverridesListCall { 5481 c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) 5482 return c 5483} 5484 5485// PageToken sets the optional parameter "pageToken": Token identifying 5486// which result to start with; returned by a previous list call. 5487func (c *ServicesConsumerQuotaMetricsLimitsProducerOverridesListCall) PageToken(pageToken string) *ServicesConsumerQuotaMetricsLimitsProducerOverridesListCall { 5488 c.urlParams_.Set("pageToken", pageToken) 5489 return c 5490} 5491 5492// Fields allows partial responses to be retrieved. See 5493// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 5494// for more information. 5495func (c *ServicesConsumerQuotaMetricsLimitsProducerOverridesListCall) Fields(s ...googleapi.Field) *ServicesConsumerQuotaMetricsLimitsProducerOverridesListCall { 5496 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 5497 return c 5498} 5499 5500// IfNoneMatch sets the optional parameter which makes the operation 5501// fail if the object's ETag matches the given value. This is useful for 5502// getting updates only after the object has changed since the last 5503// request. Use googleapi.IsNotModified to check whether the response 5504// error from Do is the result of In-None-Match. 5505func (c *ServicesConsumerQuotaMetricsLimitsProducerOverridesListCall) IfNoneMatch(entityTag string) *ServicesConsumerQuotaMetricsLimitsProducerOverridesListCall { 5506 c.ifNoneMatch_ = entityTag 5507 return c 5508} 5509 5510// Context sets the context to be used in this call's Do method. Any 5511// pending HTTP request will be aborted if the provided context is 5512// canceled. 5513func (c *ServicesConsumerQuotaMetricsLimitsProducerOverridesListCall) Context(ctx context.Context) *ServicesConsumerQuotaMetricsLimitsProducerOverridesListCall { 5514 c.ctx_ = ctx 5515 return c 5516} 5517 5518// Header returns an http.Header that can be modified by the caller to 5519// add HTTP headers to the request. 5520func (c *ServicesConsumerQuotaMetricsLimitsProducerOverridesListCall) Header() http.Header { 5521 if c.header_ == nil { 5522 c.header_ = make(http.Header) 5523 } 5524 return c.header_ 5525} 5526 5527func (c *ServicesConsumerQuotaMetricsLimitsProducerOverridesListCall) doRequest(alt string) (*http.Response, error) { 5528 reqHeaders := make(http.Header) 5529 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210629") 5530 for k, v := range c.header_ { 5531 reqHeaders[k] = v 5532 } 5533 reqHeaders.Set("User-Agent", c.s.userAgent()) 5534 if c.ifNoneMatch_ != "" { 5535 reqHeaders.Set("If-None-Match", c.ifNoneMatch_) 5536 } 5537 var body io.Reader = nil 5538 c.urlParams_.Set("alt", alt) 5539 c.urlParams_.Set("prettyPrint", "false") 5540 urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}/producerOverrides") 5541 urls += "?" + c.urlParams_.Encode() 5542 req, err := http.NewRequest("GET", urls, body) 5543 if err != nil { 5544 return nil, err 5545 } 5546 req.Header = reqHeaders 5547 googleapi.Expand(req.URL, map[string]string{ 5548 "parent": c.parent, 5549 }) 5550 return gensupport.SendRequest(c.ctx_, c.s.client, req) 5551} 5552 5553// Do executes the "serviceconsumermanagement.services.consumerQuotaMetrics.limits.producerOverrides.list" call. 5554// Exactly one of *V1Beta1ListProducerOverridesResponse or error will be 5555// non-nil. Any non-2xx status code is an error. Response headers are in 5556// either *V1Beta1ListProducerOverridesResponse.ServerResponse.Header or 5557// (if a response was returned at all) in 5558// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check 5559// whether the returned error was because http.StatusNotModified was 5560// returned. 5561func (c *ServicesConsumerQuotaMetricsLimitsProducerOverridesListCall) Do(opts ...googleapi.CallOption) (*V1Beta1ListProducerOverridesResponse, error) { 5562 gensupport.SetOptions(c.urlParams_, opts...) 5563 res, err := c.doRequest("json") 5564 if res != nil && res.StatusCode == http.StatusNotModified { 5565 if res.Body != nil { 5566 res.Body.Close() 5567 } 5568 return nil, &googleapi.Error{ 5569 Code: res.StatusCode, 5570 Header: res.Header, 5571 } 5572 } 5573 if err != nil { 5574 return nil, err 5575 } 5576 defer googleapi.CloseBody(res) 5577 if err := googleapi.CheckResponse(res); err != nil { 5578 return nil, err 5579 } 5580 ret := &V1Beta1ListProducerOverridesResponse{ 5581 ServerResponse: googleapi.ServerResponse{ 5582 Header: res.Header, 5583 HTTPStatusCode: res.StatusCode, 5584 }, 5585 } 5586 target := &ret 5587 if err := gensupport.DecodeResponse(target, res); err != nil { 5588 return nil, err 5589 } 5590 return ret, nil 5591 // { 5592 // "description": "Lists all producer overrides on this limit.", 5593 // "flatPath": "v1beta1/services/{servicesId}/{servicesId1}/{servicesId2}/consumerQuotaMetrics/{consumerQuotaMetricsId}/limits/{limitsId}/producerOverrides", 5594 // "httpMethod": "GET", 5595 // "id": "serviceconsumermanagement.services.consumerQuotaMetrics.limits.producerOverrides.list", 5596 // "parameterOrder": [ 5597 // "parent" 5598 // ], 5599 // "parameters": { 5600 // "pageSize": { 5601 // "description": "Requested size of the next page of data.", 5602 // "format": "int32", 5603 // "location": "query", 5604 // "type": "integer" 5605 // }, 5606 // "pageToken": { 5607 // "description": "Token identifying which result to start with; returned by a previous list call.", 5608 // "location": "query", 5609 // "type": "string" 5610 // }, 5611 // "parent": { 5612 // "description": "The resource name of the parent quota limit, returned by a ListConsumerQuotaMetrics or GetConsumerQuotaMetric call. An example name would be: `services/compute.googleapis.com/projects/123/consumerQuotaMetrics/compute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion`", 5613 // "location": "path", 5614 // "pattern": "^services/[^/]+/[^/]+/[^/]+/consumerQuotaMetrics/[^/]+/limits/[^/]+$", 5615 // "required": true, 5616 // "type": "string" 5617 // } 5618 // }, 5619 // "path": "v1beta1/{+parent}/producerOverrides", 5620 // "response": { 5621 // "$ref": "V1Beta1ListProducerOverridesResponse" 5622 // }, 5623 // "scopes": [ 5624 // "https://www.googleapis.com/auth/cloud-platform" 5625 // ] 5626 // } 5627 5628} 5629 5630// Pages invokes f for each page of results. 5631// A non-nil error returned from f will halt the iteration. 5632// The provided context supersedes any context provided to the Context method. 5633func (c *ServicesConsumerQuotaMetricsLimitsProducerOverridesListCall) Pages(ctx context.Context, f func(*V1Beta1ListProducerOverridesResponse) error) error { 5634 c.ctx_ = ctx 5635 defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point 5636 for { 5637 x, err := c.Do() 5638 if err != nil { 5639 return err 5640 } 5641 if err := f(x); err != nil { 5642 return err 5643 } 5644 if x.NextPageToken == "" { 5645 return nil 5646 } 5647 c.PageToken(x.NextPageToken) 5648 } 5649} 5650 5651// method id "serviceconsumermanagement.services.consumerQuotaMetrics.limits.producerOverrides.patch": 5652 5653type ServicesConsumerQuotaMetricsLimitsProducerOverridesPatchCall struct { 5654 s *APIService 5655 name string 5656 v1beta1quotaoverride *V1Beta1QuotaOverride 5657 urlParams_ gensupport.URLParams 5658 ctx_ context.Context 5659 header_ http.Header 5660} 5661 5662// Patch: Updates a producer override. 5663// 5664// - name: The resource name of the override to update. An example name 5665// would be: 5666// `services/compute.googleapis.com/projects/123/consumerQuotaMetrics/c 5667// ompute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion/producerOver 5668// rides/4a3f2c1d`. 5669func (r *ServicesConsumerQuotaMetricsLimitsProducerOverridesService) Patch(name string, v1beta1quotaoverride *V1Beta1QuotaOverride) *ServicesConsumerQuotaMetricsLimitsProducerOverridesPatchCall { 5670 c := &ServicesConsumerQuotaMetricsLimitsProducerOverridesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} 5671 c.name = name 5672 c.v1beta1quotaoverride = v1beta1quotaoverride 5673 return c 5674} 5675 5676// Force sets the optional parameter "force": Whether to force the 5677// update of the quota override. Setting the force parameter to 'true' 5678// ignores all quota safety checks that would fail the request. 5679// QuotaSafetyCheck lists all such validations. 5680func (c *ServicesConsumerQuotaMetricsLimitsProducerOverridesPatchCall) Force(force bool) *ServicesConsumerQuotaMetricsLimitsProducerOverridesPatchCall { 5681 c.urlParams_.Set("force", fmt.Sprint(force)) 5682 return c 5683} 5684 5685// ForceOnly sets the optional parameter "forceOnly": The list of quota 5686// safety checks to ignore before the override mutation. Unlike 'force' 5687// field that ignores all the quota safety checks, the 'force_only' 5688// field ignores only the specified checks; other checks are still 5689// enforced. The 'force' and 'force_only' fields cannot both be set. 5690// 5691// Possible values: 5692// "QUOTA_SAFETY_CHECK_UNSPECIFIED" - Unspecified quota safety check. 5693// "LIMIT_DECREASE_BELOW_USAGE" - Validates that a quota mutation 5694// would not cause the consumer's effective limit to be lower than the 5695// consumer's quota usage. 5696// "LIMIT_DECREASE_PERCENTAGE_TOO_HIGH" - Validates that a quota 5697// mutation would not cause the consumer's effective limit to decrease 5698// by more than 10 percent. 5699func (c *ServicesConsumerQuotaMetricsLimitsProducerOverridesPatchCall) ForceOnly(forceOnly ...string) *ServicesConsumerQuotaMetricsLimitsProducerOverridesPatchCall { 5700 c.urlParams_.SetMulti("forceOnly", append([]string{}, forceOnly...)) 5701 return c 5702} 5703 5704// UpdateMask sets the optional parameter "updateMask": Update only the 5705// specified fields. If unset, all modifiable fields will be updated. 5706func (c *ServicesConsumerQuotaMetricsLimitsProducerOverridesPatchCall) UpdateMask(updateMask string) *ServicesConsumerQuotaMetricsLimitsProducerOverridesPatchCall { 5707 c.urlParams_.Set("updateMask", updateMask) 5708 return c 5709} 5710 5711// Fields allows partial responses to be retrieved. See 5712// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 5713// for more information. 5714func (c *ServicesConsumerQuotaMetricsLimitsProducerOverridesPatchCall) Fields(s ...googleapi.Field) *ServicesConsumerQuotaMetricsLimitsProducerOverridesPatchCall { 5715 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 5716 return c 5717} 5718 5719// Context sets the context to be used in this call's Do method. Any 5720// pending HTTP request will be aborted if the provided context is 5721// canceled. 5722func (c *ServicesConsumerQuotaMetricsLimitsProducerOverridesPatchCall) Context(ctx context.Context) *ServicesConsumerQuotaMetricsLimitsProducerOverridesPatchCall { 5723 c.ctx_ = ctx 5724 return c 5725} 5726 5727// Header returns an http.Header that can be modified by the caller to 5728// add HTTP headers to the request. 5729func (c *ServicesConsumerQuotaMetricsLimitsProducerOverridesPatchCall) Header() http.Header { 5730 if c.header_ == nil { 5731 c.header_ = make(http.Header) 5732 } 5733 return c.header_ 5734} 5735 5736func (c *ServicesConsumerQuotaMetricsLimitsProducerOverridesPatchCall) doRequest(alt string) (*http.Response, error) { 5737 reqHeaders := make(http.Header) 5738 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210629") 5739 for k, v := range c.header_ { 5740 reqHeaders[k] = v 5741 } 5742 reqHeaders.Set("User-Agent", c.s.userAgent()) 5743 var body io.Reader = nil 5744 body, err := googleapi.WithoutDataWrapper.JSONReader(c.v1beta1quotaoverride) 5745 if err != nil { 5746 return nil, err 5747 } 5748 reqHeaders.Set("Content-Type", "application/json") 5749 c.urlParams_.Set("alt", alt) 5750 c.urlParams_.Set("prettyPrint", "false") 5751 urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}") 5752 urls += "?" + c.urlParams_.Encode() 5753 req, err := http.NewRequest("PATCH", urls, body) 5754 if err != nil { 5755 return nil, err 5756 } 5757 req.Header = reqHeaders 5758 googleapi.Expand(req.URL, map[string]string{ 5759 "name": c.name, 5760 }) 5761 return gensupport.SendRequest(c.ctx_, c.s.client, req) 5762} 5763 5764// Do executes the "serviceconsumermanagement.services.consumerQuotaMetrics.limits.producerOverrides.patch" call. 5765// Exactly one of *Operation or error will be non-nil. Any non-2xx 5766// status code is an error. Response headers are in either 5767// *Operation.ServerResponse.Header or (if a response was returned at 5768// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified 5769// to check whether the returned error was because 5770// http.StatusNotModified was returned. 5771func (c *ServicesConsumerQuotaMetricsLimitsProducerOverridesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { 5772 gensupport.SetOptions(c.urlParams_, opts...) 5773 res, err := c.doRequest("json") 5774 if res != nil && res.StatusCode == http.StatusNotModified { 5775 if res.Body != nil { 5776 res.Body.Close() 5777 } 5778 return nil, &googleapi.Error{ 5779 Code: res.StatusCode, 5780 Header: res.Header, 5781 } 5782 } 5783 if err != nil { 5784 return nil, err 5785 } 5786 defer googleapi.CloseBody(res) 5787 if err := googleapi.CheckResponse(res); err != nil { 5788 return nil, err 5789 } 5790 ret := &Operation{ 5791 ServerResponse: googleapi.ServerResponse{ 5792 Header: res.Header, 5793 HTTPStatusCode: res.StatusCode, 5794 }, 5795 } 5796 target := &ret 5797 if err := gensupport.DecodeResponse(target, res); err != nil { 5798 return nil, err 5799 } 5800 return ret, nil 5801 // { 5802 // "description": "Updates a producer override.", 5803 // "flatPath": "v1beta1/services/{servicesId}/{servicesId1}/{servicesId2}/consumerQuotaMetrics/{consumerQuotaMetricsId}/limits/{limitsId}/producerOverrides/{producerOverridesId}", 5804 // "httpMethod": "PATCH", 5805 // "id": "serviceconsumermanagement.services.consumerQuotaMetrics.limits.producerOverrides.patch", 5806 // "parameterOrder": [ 5807 // "name" 5808 // ], 5809 // "parameters": { 5810 // "force": { 5811 // "description": "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.", 5812 // "location": "query", 5813 // "type": "boolean" 5814 // }, 5815 // "forceOnly": { 5816 // "description": "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.", 5817 // "enum": [ 5818 // "QUOTA_SAFETY_CHECK_UNSPECIFIED", 5819 // "LIMIT_DECREASE_BELOW_USAGE", 5820 // "LIMIT_DECREASE_PERCENTAGE_TOO_HIGH" 5821 // ], 5822 // "enumDescriptions": [ 5823 // "Unspecified quota safety check.", 5824 // "Validates that a quota mutation would not cause the consumer's effective limit to be lower than the consumer's quota usage.", 5825 // "Validates that a quota mutation would not cause the consumer's effective limit to decrease by more than 10 percent." 5826 // ], 5827 // "location": "query", 5828 // "repeated": true, 5829 // "type": "string" 5830 // }, 5831 // "name": { 5832 // "description": "The resource name of the override to update. An example name would be: `services/compute.googleapis.com/projects/123/consumerQuotaMetrics/compute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion/producerOverrides/4a3f2c1d`", 5833 // "location": "path", 5834 // "pattern": "^services/[^/]+/[^/]+/[^/]+/consumerQuotaMetrics/[^/]+/limits/[^/]+/producerOverrides/[^/]+$", 5835 // "required": true, 5836 // "type": "string" 5837 // }, 5838 // "updateMask": { 5839 // "description": "Update only the specified fields. If unset, all modifiable fields will be updated.", 5840 // "format": "google-fieldmask", 5841 // "location": "query", 5842 // "type": "string" 5843 // } 5844 // }, 5845 // "path": "v1beta1/{+name}", 5846 // "request": { 5847 // "$ref": "V1Beta1QuotaOverride" 5848 // }, 5849 // "response": { 5850 // "$ref": "Operation" 5851 // }, 5852 // "scopes": [ 5853 // "https://www.googleapis.com/auth/cloud-platform" 5854 // ] 5855 // } 5856 5857} 5858