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