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