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