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