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