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