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