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