1// Copyright 2021 Google LLC. 2// Use of this source code is governed by a BSD-style 3// license that can be found in the LICENSE file. 4 5// Code generated file. DO NOT EDIT. 6 7// Package 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/v1" 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/v1" 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:v1" 79const apiName = "servicenetworking" 80const apiVersion = "v1" 81const basePath = "https://servicenetworking.googleapis.com/" 82const mtlsBasePath = "https://servicenetworking.mtls.googleapis.com/" 83 84// OAuth2 scopes used by this API. 85const ( 86 // See, edit, configure, and delete your Google Cloud Platform data 87 CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform" 88 89 // Manage your Google API service configuration 90 ServiceManagementScope = "https://www.googleapis.com/auth/service.management" 91) 92 93// NewService creates a new APIService. 94func NewService(ctx context.Context, opts ...option.ClientOption) (*APIService, error) { 95 scopesOption := option.WithScopes( 96 "https://www.googleapis.com/auth/cloud-platform", 97 "https://www.googleapis.com/auth/service.management", 98 ) 99 // NOTE: prepend, so we don't override user-specified scopes. 100 opts = append([]option.ClientOption{scopesOption}, opts...) 101 opts = append(opts, internaloption.WithDefaultEndpoint(basePath)) 102 opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath)) 103 client, endpoint, err := htransport.NewClient(ctx, opts...) 104 if err != nil { 105 return nil, err 106 } 107 s, err := New(client) 108 if err != nil { 109 return nil, err 110 } 111 if endpoint != "" { 112 s.BasePath = endpoint 113 } 114 return s, nil 115} 116 117// New creates a new APIService. It uses the provided http.Client for requests. 118// 119// Deprecated: please use NewService instead. 120// To provide a custom HTTP client, use option.WithHTTPClient. 121// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead. 122func New(client *http.Client) (*APIService, error) { 123 if client == nil { 124 return nil, errors.New("client is nil") 125 } 126 s := &APIService{client: client, BasePath: basePath} 127 s.Operations = NewOperationsService(s) 128 s.Services = NewServicesService(s) 129 return s, nil 130} 131 132type APIService struct { 133 client *http.Client 134 BasePath string // API endpoint base URL 135 UserAgent string // optional additional User-Agent fragment 136 137 Operations *OperationsService 138 139 Services *ServicesService 140} 141 142func (s *APIService) userAgent() string { 143 if s.UserAgent == "" { 144 return googleapi.UserAgent 145 } 146 return googleapi.UserAgent + " " + s.UserAgent 147} 148 149func NewOperationsService(s *APIService) *OperationsService { 150 rs := &OperationsService{s: s} 151 return rs 152} 153 154type OperationsService struct { 155 s *APIService 156} 157 158func NewServicesService(s *APIService) *ServicesService { 159 rs := &ServicesService{s: s} 160 rs.Connections = NewServicesConnectionsService(s) 161 rs.DnsRecordSets = NewServicesDnsRecordSetsService(s) 162 rs.DnsZones = NewServicesDnsZonesService(s) 163 rs.Projects = NewServicesProjectsService(s) 164 rs.Roles = NewServicesRolesService(s) 165 return rs 166} 167 168type ServicesService struct { 169 s *APIService 170 171 Connections *ServicesConnectionsService 172 173 DnsRecordSets *ServicesDnsRecordSetsService 174 175 DnsZones *ServicesDnsZonesService 176 177 Projects *ServicesProjectsService 178 179 Roles *ServicesRolesService 180} 181 182func NewServicesConnectionsService(s *APIService) *ServicesConnectionsService { 183 rs := &ServicesConnectionsService{s: s} 184 return rs 185} 186 187type ServicesConnectionsService struct { 188 s *APIService 189} 190 191func NewServicesDnsRecordSetsService(s *APIService) *ServicesDnsRecordSetsService { 192 rs := &ServicesDnsRecordSetsService{s: s} 193 return rs 194} 195 196type ServicesDnsRecordSetsService struct { 197 s *APIService 198} 199 200func NewServicesDnsZonesService(s *APIService) *ServicesDnsZonesService { 201 rs := &ServicesDnsZonesService{s: s} 202 return rs 203} 204 205type ServicesDnsZonesService struct { 206 s *APIService 207} 208 209func NewServicesProjectsService(s *APIService) *ServicesProjectsService { 210 rs := &ServicesProjectsService{s: s} 211 rs.Global = NewServicesProjectsGlobalService(s) 212 return rs 213} 214 215type ServicesProjectsService struct { 216 s *APIService 217 218 Global *ServicesProjectsGlobalService 219} 220 221func NewServicesProjectsGlobalService(s *APIService) *ServicesProjectsGlobalService { 222 rs := &ServicesProjectsGlobalService{s: s} 223 rs.Networks = NewServicesProjectsGlobalNetworksService(s) 224 return rs 225} 226 227type ServicesProjectsGlobalService struct { 228 s *APIService 229 230 Networks *ServicesProjectsGlobalNetworksService 231} 232 233func NewServicesProjectsGlobalNetworksService(s *APIService) *ServicesProjectsGlobalNetworksService { 234 rs := &ServicesProjectsGlobalNetworksService{s: s} 235 rs.PeeredDnsDomains = NewServicesProjectsGlobalNetworksPeeredDnsDomainsService(s) 236 return rs 237} 238 239type ServicesProjectsGlobalNetworksService struct { 240 s *APIService 241 242 PeeredDnsDomains *ServicesProjectsGlobalNetworksPeeredDnsDomainsService 243} 244 245func NewServicesProjectsGlobalNetworksPeeredDnsDomainsService(s *APIService) *ServicesProjectsGlobalNetworksPeeredDnsDomainsService { 246 rs := &ServicesProjectsGlobalNetworksPeeredDnsDomainsService{s: s} 247 return rs 248} 249 250type ServicesProjectsGlobalNetworksPeeredDnsDomainsService struct { 251 s *APIService 252} 253 254func NewServicesRolesService(s *APIService) *ServicesRolesService { 255 rs := &ServicesRolesService{s: s} 256 return rs 257} 258 259type ServicesRolesService struct { 260 s *APIService 261} 262 263// AddDnsRecordSetMetadata: Metadata provided through GetOperation 264// request for the LRO generated by AddDnsRecordSet API 265type AddDnsRecordSetMetadata struct { 266} 267 268// AddDnsRecordSetRequest: Request to add a record set to a private 269// managed DNS zone in the shared producer host project. 270type AddDnsRecordSetRequest struct { 271 // ConsumerNetwork: Required. The network that the consumer is using to 272 // connect with services. Must be in the form of 273 // projects/{project}/global/networks/{network} {project} is the project 274 // number, as in '12345' {network} is the network name. 275 ConsumerNetwork string `json:"consumerNetwork,omitempty"` 276 277 // DnsRecordSet: Required. The DNS record set to add. 278 DnsRecordSet *DnsRecordSet `json:"dnsRecordSet,omitempty"` 279 280 // Zone: Required. The name of the private DNS zone in the shared 281 // producer host project to which the record set will be added. 282 Zone string `json:"zone,omitempty"` 283 284 // ForceSendFields is a list of field names (e.g. "ConsumerNetwork") to 285 // unconditionally include in API requests. By default, fields with 286 // empty values are omitted from API requests. However, any non-pointer, 287 // non-interface field appearing in ForceSendFields will be sent to the 288 // server regardless of whether the field is empty or not. This may be 289 // used to include empty fields in Patch requests. 290 ForceSendFields []string `json:"-"` 291 292 // NullFields is a list of field names (e.g. "ConsumerNetwork") to 293 // include in API requests with the JSON null value. By default, fields 294 // with empty values are omitted from API requests. However, any field 295 // with an empty value appearing in NullFields will be sent to the 296 // server as null. It is an error if a field in this list has a 297 // non-empty value. This may be used to include null fields in Patch 298 // requests. 299 NullFields []string `json:"-"` 300} 301 302func (s *AddDnsRecordSetRequest) MarshalJSON() ([]byte, error) { 303 type NoMethod AddDnsRecordSetRequest 304 raw := NoMethod(*s) 305 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 306} 307 308// AddDnsZoneMetadata: Metadata provided through GetOperation request 309// for the LRO generated by AddDnsZone API 310type AddDnsZoneMetadata struct { 311} 312 313// AddDnsZoneRequest: Request to add a private managed DNS zone in the 314// shared producer host project and a matching DNS peering zone in the 315// consumer project. 316type AddDnsZoneRequest struct { 317 // ConsumerNetwork: Required. The network that the consumer is using to 318 // connect with services. Must be in the form of 319 // projects/{project}/global/networks/{network} {project} is the project 320 // number, as in '12345' {network} is the network name. 321 ConsumerNetwork string `json:"consumerNetwork,omitempty"` 322 323 // DnsSuffix: Required. The DNS name suffix for the zones e.g. 324 // `example.com`. 325 DnsSuffix string `json:"dnsSuffix,omitempty"` 326 327 // Name: Required. The name for both the private zone in the shared 328 // producer host project and the peering zone in the consumer project. 329 // Must be unique within both projects. The name must be 1-63 characters 330 // long, must begin with a letter, end with a letter or digit, and only 331 // contain lowercase letters, digits or dashes. 332 Name string `json:"name,omitempty"` 333 334 // ForceSendFields is a list of field names (e.g. "ConsumerNetwork") to 335 // unconditionally include in API requests. By default, fields with 336 // empty values are omitted from API requests. However, any non-pointer, 337 // non-interface field appearing in ForceSendFields will be sent to the 338 // server regardless of whether the field is empty or not. This may be 339 // used to include empty fields in Patch requests. 340 ForceSendFields []string `json:"-"` 341 342 // NullFields is a list of field names (e.g. "ConsumerNetwork") to 343 // include in API requests with the JSON null value. By default, fields 344 // with empty values are omitted from API requests. However, any field 345 // with an empty value appearing in NullFields will be sent to the 346 // server as null. It is an error if a field in this list has a 347 // non-empty value. This may be used to include null fields in Patch 348 // requests. 349 NullFields []string `json:"-"` 350} 351 352func (s *AddDnsZoneRequest) MarshalJSON() ([]byte, error) { 353 type NoMethod AddDnsZoneRequest 354 raw := NoMethod(*s) 355 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 356} 357 358// AddDnsZoneResponse: Represents managed DNS zones created in the 359// shared producer host and consumer projects. 360type AddDnsZoneResponse struct { 361 // ConsumerPeeringZone: The DNS peering zone created in the consumer 362 // project. 363 ConsumerPeeringZone *DnsZone `json:"consumerPeeringZone,omitempty"` 364 365 // ProducerPrivateZone: The private DNS zone created in the shared 366 // producer host project. 367 ProducerPrivateZone *DnsZone `json:"producerPrivateZone,omitempty"` 368 369 // ForceSendFields is a list of field names (e.g. "ConsumerPeeringZone") 370 // to unconditionally include in API requests. By default, fields with 371 // empty values are omitted from API requests. However, any non-pointer, 372 // non-interface field appearing in ForceSendFields will be sent to the 373 // server regardless of whether the field is empty or not. This may be 374 // used to include empty fields in Patch requests. 375 ForceSendFields []string `json:"-"` 376 377 // NullFields is a list of field names (e.g. "ConsumerPeeringZone") to 378 // include in API requests with the JSON null value. By default, fields 379 // with empty values are omitted from API requests. However, any field 380 // with an empty value appearing in NullFields will be sent to the 381 // server as null. It is an error if a field in this list has a 382 // non-empty value. This may be used to include null fields in Patch 383 // requests. 384 NullFields []string `json:"-"` 385} 386 387func (s *AddDnsZoneResponse) MarshalJSON() ([]byte, error) { 388 type NoMethod AddDnsZoneResponse 389 raw := NoMethod(*s) 390 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 391} 392 393// AddRolesMetadata: Metadata provided through GetOperation request for 394// the LRO generated by AddRoles API 395type AddRolesMetadata struct { 396} 397 398// AddRolesRequest: Request for AddRoles to allow Service Producers to 399// add roles in the shared VPC host project for them to use. 400type AddRolesRequest struct { 401 // ConsumerNetwork: Required. The network that the consumer is using to 402 // connect with services. Must be in the form of 403 // projects/{project}/global/networks/{network} {project} is a project 404 // number, as in '12345' {network} is a network name. 405 ConsumerNetwork string `json:"consumerNetwork,omitempty"` 406 407 // PolicyBinding: Required. List of policy bindings to add to shared VPC 408 // host project. 409 PolicyBinding []*PolicyBinding `json:"policyBinding,omitempty"` 410 411 // ForceSendFields is a list of field names (e.g. "ConsumerNetwork") to 412 // unconditionally include in API requests. By default, fields with 413 // empty values are omitted from API requests. However, any non-pointer, 414 // non-interface field appearing in ForceSendFields will be sent to the 415 // server regardless of whether the field is empty or not. This may be 416 // used to include empty fields in Patch requests. 417 ForceSendFields []string `json:"-"` 418 419 // NullFields is a list of field names (e.g. "ConsumerNetwork") to 420 // include in API requests with the JSON null value. By default, fields 421 // with empty values are omitted from API requests. However, any field 422 // with an empty value appearing in NullFields will be sent to the 423 // server as null. It is an error if a field in this list has a 424 // non-empty value. This may be used to include null fields in Patch 425 // requests. 426 NullFields []string `json:"-"` 427} 428 429func (s *AddRolesRequest) MarshalJSON() ([]byte, error) { 430 type NoMethod AddRolesRequest 431 raw := NoMethod(*s) 432 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 433} 434 435// AddRolesResponse: Represents IAM roles added to the shared VPC host 436// project. 437type AddRolesResponse struct { 438 // PolicyBinding: Required. List of policy bindings that were added to 439 // the shared VPC host project. 440 PolicyBinding []*PolicyBinding `json:"policyBinding,omitempty"` 441 442 // ForceSendFields is a list of field names (e.g. "PolicyBinding") to 443 // unconditionally include in API requests. By default, fields with 444 // empty values are omitted from API requests. However, any non-pointer, 445 // non-interface field appearing in ForceSendFields will be sent to the 446 // server regardless of whether the field is empty or not. This may be 447 // used to include empty fields in Patch requests. 448 ForceSendFields []string `json:"-"` 449 450 // NullFields is a list of field names (e.g. "PolicyBinding") to include 451 // in API requests with the JSON null value. By default, fields with 452 // empty values are omitted from API requests. However, any field with 453 // an empty value appearing in NullFields will be sent to the server as 454 // null. It is an error if a field in this list has a non-empty value. 455 // This may be used to include null fields in Patch requests. 456 NullFields []string `json:"-"` 457} 458 459func (s *AddRolesResponse) MarshalJSON() ([]byte, error) { 460 type NoMethod AddRolesResponse 461 raw := NoMethod(*s) 462 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 463} 464 465// AddSubnetworkRequest: Request to create a subnetwork in a previously 466// peered service network. 467type AddSubnetworkRequest struct { 468 // Consumer: Required. A resource that represents the service consumer, 469 // such as `projects/123456`. The project number can be different from 470 // the value in the consumer network parameter. For example, the network 471 // might be part of a Shared VPC network. In those cases, Service 472 // Networking validates that this resource belongs to that Shared VPC. 473 Consumer string `json:"consumer,omitempty"` 474 475 // ConsumerNetwork: Required. The name of the service consumer's VPC 476 // network. The network must have an existing private connection that 477 // was provisioned through the connections.create method. The name must 478 // be in the following format: 479 // `projects/{project}/global/networks/{network}`, where {project} is a 480 // project number, such as `12345`. {network} is the name of a VPC 481 // network in the project. 482 ConsumerNetwork string `json:"consumerNetwork,omitempty"` 483 484 // Description: Optional. Description of the subnet. 485 Description string `json:"description,omitempty"` 486 487 // IpPrefixLength: Required. The prefix length of the subnet's IP 488 // address range. Use CIDR range notation, such as `30` to provision a 489 // subnet with an `x.x.x.x/30` CIDR range. The IP address range is drawn 490 // from a pool of available ranges in the service consumer's allocated 491 // range. 492 IpPrefixLength int64 `json:"ipPrefixLength,omitempty"` 493 494 // Region: Required. The name of a region (/compute/docs/regions-zones) 495 // for the subnet, such `europe-west1`. 496 Region string `json:"region,omitempty"` 497 498 // RequestedAddress: Optional. The starting address of a range. The 499 // address must be a valid IPv4 address in the x.x.x.x format. This 500 // value combined with the IP prefix range is the CIDR range for the 501 // subnet. The range must be within the allocated range that is assigned 502 // to the private connection. If the CIDR range isn't available, the 503 // call fails. 504 RequestedAddress string `json:"requestedAddress,omitempty"` 505 506 // RequestedRanges: Optional. The name of one or more allocated IP 507 // address ranges associated with this private service access 508 // connection. If no range names are provided all ranges associated with 509 // this connection will be considered. If a CIDR range with the 510 // specified IP prefix length is not available within these ranges, the 511 // call fails. 512 RequestedRanges []string `json:"requestedRanges,omitempty"` 513 514 // SecondaryIpRangeSpecs: Optional. A list of secondary IP ranges to be 515 // created within the new subnetwork. 516 SecondaryIpRangeSpecs []*SecondaryIpRangeSpec `json:"secondaryIpRangeSpecs,omitempty"` 517 518 // Subnetwork: Required. A name for the new subnet. For information 519 // about the naming requirements, see subnetwork 520 // (/compute/docs/reference/rest/v1/subnetworks) in the Compute API 521 // documentation. 522 Subnetwork string `json:"subnetwork,omitempty"` 523 524 // SubnetworkUsers: A list of members that are granted the 525 // `compute.networkUser` role on the subnet. 526 SubnetworkUsers []string `json:"subnetworkUsers,omitempty"` 527 528 // ForceSendFields is a list of field names (e.g. "Consumer") to 529 // unconditionally include in API requests. By default, fields with 530 // empty values are omitted from API requests. However, any non-pointer, 531 // non-interface field appearing in ForceSendFields will be sent to the 532 // server regardless of whether the field is empty or not. This may be 533 // used to include empty fields in Patch requests. 534 ForceSendFields []string `json:"-"` 535 536 // NullFields is a list of field names (e.g. "Consumer") to include in 537 // API requests with the JSON null value. By default, fields with empty 538 // values are omitted from API requests. However, any field with an 539 // empty value appearing in NullFields will be sent to the server as 540 // null. It is an error if a field in this list has a non-empty value. 541 // This may be used to include null fields in Patch requests. 542 NullFields []string `json:"-"` 543} 544 545func (s *AddSubnetworkRequest) MarshalJSON() ([]byte, error) { 546 type NoMethod AddSubnetworkRequest 547 raw := NoMethod(*s) 548 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 549} 550 551// Api: Api is a light-weight descriptor for an API Interface. 552// Interfaces are also described as "protocol buffer services" in some 553// contexts, such as by the "service" keyword in a .proto file, but they 554// are different from API Services, which represent a concrete 555// implementation of an interface as opposed to simply a description of 556// methods and bindings. They are also sometimes simply referred to as 557// "APIs" in other contexts, such as the name of this message itself. 558// See https://cloud.google.com/apis/design/glossary for detailed 559// terminology. 560type Api struct { 561 // Methods: The methods of this interface, in unspecified order. 562 Methods []*Method `json:"methods,omitempty"` 563 564 // Mixins: Included interfaces. See Mixin. 565 Mixins []*Mixin `json:"mixins,omitempty"` 566 567 // Name: The fully qualified name of this interface, including package 568 // name followed by the interface's simple name. 569 Name string `json:"name,omitempty"` 570 571 // Options: Any metadata attached to the interface. 572 Options []*Option `json:"options,omitempty"` 573 574 // SourceContext: Source context for the protocol buffer service 575 // represented by this message. 576 SourceContext *SourceContext `json:"sourceContext,omitempty"` 577 578 // Syntax: The source syntax of the service. 579 // 580 // Possible values: 581 // "SYNTAX_PROTO2" - Syntax `proto2`. 582 // "SYNTAX_PROTO3" - Syntax `proto3`. 583 Syntax string `json:"syntax,omitempty"` 584 585 // Version: A version string for this interface. If specified, must have 586 // the form `major-version.minor-version`, as in `1.10`. If the minor 587 // version is omitted, it defaults to zero. If the entire version field 588 // is empty, the major version is derived from the package name, as 589 // outlined below. If the field is not empty, the version in the package 590 // name will be verified to be consistent with what is provided here. 591 // The versioning schema uses semantic versioning (http://semver.org) 592 // where the major version number indicates a breaking change and the 593 // minor version an additive, non-breaking change. Both version numbers 594 // are signals to users what to expect from different versions, and 595 // should be carefully chosen based on the product plan. The major 596 // version is also reflected in the package name of the interface, which 597 // must end in `v`, as in `google.feature.v1`. For major versions 0 and 598 // 1, the suffix can be omitted. Zero major versions must only be used 599 // for experimental, non-GA interfaces. 600 Version string `json:"version,omitempty"` 601 602 // ForceSendFields is a list of field names (e.g. "Methods") to 603 // unconditionally include in API requests. By default, fields with 604 // empty values are omitted from API requests. However, any non-pointer, 605 // non-interface field appearing in ForceSendFields will be sent to the 606 // server regardless of whether the field is empty or not. This may be 607 // used to include empty fields in Patch requests. 608 ForceSendFields []string `json:"-"` 609 610 // NullFields is a list of field names (e.g. "Methods") to include in 611 // API requests with the JSON null value. By default, fields with empty 612 // values are omitted from API requests. However, any field with an 613 // empty value appearing in NullFields will be sent to the server as 614 // null. It is an error if a field in this list has a non-empty value. 615 // This may be used to include null fields in Patch requests. 616 NullFields []string `json:"-"` 617} 618 619func (s *Api) MarshalJSON() ([]byte, error) { 620 type NoMethod Api 621 raw := NoMethod(*s) 622 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 623} 624 625// AuthProvider: Configuration for an authentication provider, including 626// support for JSON Web Token (JWT) 627// (https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32). 628type AuthProvider struct { 629 // Audiences: The list of JWT audiences 630 // (https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3). 631 // that are allowed to access. A JWT containing any of these audiences 632 // will be accepted. When this setting is absent, JWTs with audiences: - 633 // "https://[service.name]/[google.protobuf.Api.name]" - 634 // "https://[service.name]/" will be accepted. For example, if no 635 // audiences are in the setting, LibraryService API will accept JWTs 636 // with the following audiences: - 637 // https://library-example.googleapis.com/google.example.library.v1.LibraryService 638 // - https://library-example.googleapis.com/ Example: audiences: 639 // bookstore_android.apps.googleusercontent.com, 640 // bookstore_web.apps.googleusercontent.com 641 Audiences string `json:"audiences,omitempty"` 642 643 // AuthorizationUrl: Redirect URL if JWT token is required but not 644 // present or is expired. Implement authorizationUrl of 645 // securityDefinitions in OpenAPI spec. 646 AuthorizationUrl string `json:"authorizationUrl,omitempty"` 647 648 // Id: The unique identifier of the auth provider. It will be referred 649 // to by `AuthRequirement.provider_id`. Example: "bookstore_auth". 650 Id string `json:"id,omitempty"` 651 652 // Issuer: Identifies the principal that issued the JWT. See 653 // https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.1 654 // Usually a URL or an email address. Example: 655 // https://securetoken.google.com Example: 656 // 1234567-compute@developer.gserviceaccount.com 657 Issuer string `json:"issuer,omitempty"` 658 659 // JwksUri: URL of the provider's public key set to validate signature 660 // of the JWT. See OpenID Discovery 661 // (https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata). 662 // Optional if the key set document: - can be retrieved from OpenID 663 // Discovery 664 // (https://openid.net/specs/openid-connect-discovery-1_0.html) of the 665 // issuer. - can be inferred from the email domain of the issuer (e.g. a 666 // Google service account). Example: 667 // https://www.googleapis.com/oauth2/v1/certs 668 JwksUri string `json:"jwksUri,omitempty"` 669 670 // JwtLocations: Defines the locations to extract the JWT. JWT locations 671 // can be either from HTTP headers or URL query parameters. The rule is 672 // that the first match wins. The checking order is: checking all 673 // headers first, then URL query parameters. If not specified, default 674 // to use following 3 locations: 1) Authorization: Bearer 2) 675 // x-goog-iap-jwt-assertion 3) access_token query parameter Default 676 // locations can be specified as followings: jwt_locations: - header: 677 // Authorization value_prefix: "Bearer " - header: 678 // x-goog-iap-jwt-assertion - query: access_token 679 JwtLocations []*JwtLocation `json:"jwtLocations,omitempty"` 680 681 // ForceSendFields is a list of field names (e.g. "Audiences") to 682 // unconditionally include in API requests. By default, fields with 683 // empty values are omitted from API requests. However, any non-pointer, 684 // non-interface field appearing in ForceSendFields will be sent to the 685 // server regardless of whether the field is empty or not. This may be 686 // used to include empty fields in Patch requests. 687 ForceSendFields []string `json:"-"` 688 689 // NullFields is a list of field names (e.g. "Audiences") to include in 690 // API requests with the JSON null value. By default, fields with empty 691 // values are omitted from API requests. However, any field with an 692 // empty value appearing in NullFields will be sent to the server as 693 // null. It is an error if a field in this list has a non-empty value. 694 // This may be used to include null fields in Patch requests. 695 NullFields []string `json:"-"` 696} 697 698func (s *AuthProvider) MarshalJSON() ([]byte, error) { 699 type NoMethod AuthProvider 700 raw := NoMethod(*s) 701 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 702} 703 704// AuthRequirement: User-defined authentication requirements, including 705// support for JSON Web Token (JWT) 706// (https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32). 707type AuthRequirement struct { 708 // Audiences: NOTE: This will be deprecated soon, once 709 // AuthProvider.audiences is implemented and accepted in all the runtime 710 // components. The list of JWT audiences 711 // (https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3). 712 // that are allowed to access. A JWT containing any of these audiences 713 // will be accepted. When this setting is absent, only JWTs with 714 // audience "https://Service_name/API_name" will be accepted. For 715 // example, if no audiences are in the setting, LibraryService API will 716 // only accept JWTs with the following audience 717 // "https://library-example.googleapis.com/google.example.library.v1.Libr 718 // aryService". Example: audiences: 719 // bookstore_android.apps.googleusercontent.com, 720 // bookstore_web.apps.googleusercontent.com 721 Audiences string `json:"audiences,omitempty"` 722 723 // ProviderId: id from authentication provider. Example: provider_id: 724 // bookstore_auth 725 ProviderId string `json:"providerId,omitempty"` 726 727 // ForceSendFields is a list of field names (e.g. "Audiences") to 728 // unconditionally include in API requests. By default, fields with 729 // empty values are omitted from API requests. However, any non-pointer, 730 // non-interface field appearing in ForceSendFields will be sent to the 731 // server regardless of whether the field is empty or not. This may be 732 // used to include empty fields in Patch requests. 733 ForceSendFields []string `json:"-"` 734 735 // NullFields is a list of field names (e.g. "Audiences") to include in 736 // API requests with the JSON null value. By default, fields with empty 737 // values are omitted from API requests. However, any field with an 738 // empty value appearing in NullFields will be sent to the server as 739 // null. It is an error if a field in this list has a non-empty value. 740 // This may be used to include null fields in Patch requests. 741 NullFields []string `json:"-"` 742} 743 744func (s *AuthRequirement) MarshalJSON() ([]byte, error) { 745 type NoMethod AuthRequirement 746 raw := NoMethod(*s) 747 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 748} 749 750// Authentication: `Authentication` defines the authentication 751// configuration for an API. Example for an API targeted for external 752// use: name: calendar.googleapis.com authentication: providers: - id: 753// google_calendar_auth jwks_uri: 754// https://www.googleapis.com/oauth2/v1/certs issuer: 755// https://securetoken.google.com rules: - selector: "*" requirements: 756// provider_id: google_calendar_auth 757type Authentication struct { 758 // Providers: Defines a set of authentication providers that a service 759 // supports. 760 Providers []*AuthProvider `json:"providers,omitempty"` 761 762 // Rules: A list of authentication rules that apply to individual API 763 // methods. **NOTE:** All service configuration rules follow "last one 764 // wins" order. 765 Rules []*AuthenticationRule `json:"rules,omitempty"` 766 767 // ForceSendFields is a list of field names (e.g. "Providers") to 768 // unconditionally include in API requests. By default, fields with 769 // empty values are omitted from API requests. However, any non-pointer, 770 // non-interface field appearing in ForceSendFields will be sent to the 771 // server regardless of whether the field is empty or not. This may be 772 // used to include empty fields in Patch requests. 773 ForceSendFields []string `json:"-"` 774 775 // NullFields is a list of field names (e.g. "Providers") to include in 776 // API requests with the JSON null value. By default, fields with empty 777 // values are omitted from API requests. However, any field with an 778 // empty value appearing in NullFields will be sent to the server as 779 // null. It is an error if a field in this list has a non-empty value. 780 // This may be used to include null fields in Patch requests. 781 NullFields []string `json:"-"` 782} 783 784func (s *Authentication) MarshalJSON() ([]byte, error) { 785 type NoMethod Authentication 786 raw := NoMethod(*s) 787 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 788} 789 790// AuthenticationRule: Authentication rules for the service. By default, 791// if a method has any authentication requirements, every request must 792// include a valid credential matching one of the requirements. It's an 793// error to include more than one kind of credential in a single 794// request. If a method doesn't have any auth requirements, request 795// credentials will be ignored. 796type AuthenticationRule struct { 797 // AllowWithoutCredential: If true, the service accepts API keys without 798 // any other credential. This flag only applies to HTTP and gRPC 799 // requests. 800 AllowWithoutCredential bool `json:"allowWithoutCredential,omitempty"` 801 802 // Oauth: The requirements for OAuth credentials. 803 Oauth *OAuthRequirements `json:"oauth,omitempty"` 804 805 // Requirements: Requirements for additional authentication providers. 806 Requirements []*AuthRequirement `json:"requirements,omitempty"` 807 808 // Selector: Selects the methods to which this rule applies. Refer to 809 // selector for syntax details. 810 Selector string `json:"selector,omitempty"` 811 812 // ForceSendFields is a list of field names (e.g. 813 // "AllowWithoutCredential") to unconditionally include in API requests. 814 // By default, fields with empty values are omitted from API requests. 815 // However, any non-pointer, non-interface field appearing in 816 // ForceSendFields will be sent to the server regardless of whether the 817 // field is empty or not. This may be used to include empty fields in 818 // Patch requests. 819 ForceSendFields []string `json:"-"` 820 821 // NullFields is a list of field names (e.g. "AllowWithoutCredential") 822 // to include in API requests with the JSON null value. By default, 823 // fields with empty values are omitted from API requests. However, any 824 // field with an empty value appearing in NullFields will be sent to the 825 // server as null. It is an error if a field in this list has a 826 // non-empty value. This may be used to include null fields in Patch 827 // requests. 828 NullFields []string `json:"-"` 829} 830 831func (s *AuthenticationRule) MarshalJSON() ([]byte, error) { 832 type NoMethod AuthenticationRule 833 raw := NoMethod(*s) 834 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 835} 836 837// Backend: `Backend` defines the backend configuration for a service. 838type Backend struct { 839 // Rules: A list of API backend rules that apply to individual API 840 // methods. **NOTE:** All service configuration rules follow "last one 841 // wins" order. 842 Rules []*BackendRule `json:"rules,omitempty"` 843 844 // ForceSendFields is a list of field names (e.g. "Rules") to 845 // unconditionally include in API requests. By default, fields with 846 // empty values are omitted from API requests. However, any non-pointer, 847 // non-interface field appearing in ForceSendFields will be sent to the 848 // server regardless of whether the field is empty or not. This may be 849 // used to include empty fields in Patch requests. 850 ForceSendFields []string `json:"-"` 851 852 // NullFields is a list of field names (e.g. "Rules") to include in API 853 // requests with the JSON null value. By default, fields with empty 854 // values are omitted from API requests. However, any field with an 855 // empty value appearing in NullFields will be sent to the server as 856 // null. It is an error if a field in this list has a non-empty value. 857 // This may be used to include null fields in Patch requests. 858 NullFields []string `json:"-"` 859} 860 861func (s *Backend) MarshalJSON() ([]byte, error) { 862 type NoMethod Backend 863 raw := NoMethod(*s) 864 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 865} 866 867// BackendRule: A backend rule provides configuration for an individual 868// API element. 869type BackendRule struct { 870 // Address: The address of the API backend. The scheme is used to 871 // determine the backend protocol and security. The following schemes 872 // are accepted: SCHEME PROTOCOL SECURITY http:// HTTP None https:// 873 // HTTP TLS grpc:// gRPC None grpcs:// gRPC TLS It is recommended to 874 // explicitly include a scheme. Leaving out the scheme may cause 875 // constrasting behaviors across platforms. If the port is unspecified, 876 // the default is: - 80 for schemes without TLS - 443 for schemes with 877 // TLS For HTTP backends, use protocol to specify the protocol version. 878 Address string `json:"address,omitempty"` 879 880 // Deadline: The number of seconds to wait for a response from a 881 // request. The default varies based on the request protocol and 882 // deployment environment. 883 Deadline float64 `json:"deadline,omitempty"` 884 885 // DisableAuth: When disable_auth is true, a JWT ID token won't be 886 // generated and the original "Authorization" HTTP header will be 887 // preserved. If the header is used to carry the original token and is 888 // expected by the backend, this field must be set to true to preserve 889 // the header. 890 DisableAuth bool `json:"disableAuth,omitempty"` 891 892 // JwtAudience: The JWT audience is used when generating a JWT ID token 893 // for the backend. This ID token will be added in the HTTP 894 // "authorization" header, and sent to the backend. 895 JwtAudience string `json:"jwtAudience,omitempty"` 896 897 // MinDeadline: Minimum deadline in seconds needed for this method. 898 // Calls having deadline value lower than this will be rejected. 899 MinDeadline float64 `json:"minDeadline,omitempty"` 900 901 // OperationDeadline: The number of seconds to wait for the completion 902 // of a long running operation. The default is no deadline. 903 OperationDeadline float64 `json:"operationDeadline,omitempty"` 904 905 // Possible values: 906 // "PATH_TRANSLATION_UNSPECIFIED" 907 // "CONSTANT_ADDRESS" - Use the backend address as-is, with no 908 // modification to the path. If the URL pattern contains variables, the 909 // variable names and values will be appended to the query string. If a 910 // query string parameter and a URL pattern variable have the same name, 911 // this may result in duplicate keys in the query string. # Examples 912 // Given the following operation config: Method path: 913 // /api/company/{cid}/user/{uid} Backend address: 914 // https://example.cloudfunctions.net/getUser Requests to the following 915 // request paths will call the backend at the translated path: Request 916 // path: /api/company/widgetworks/user/johndoe Translated: 917 // https://example.cloudfunctions.net/getUser?cid=widgetworks&uid=johndoe 918 // Request path: /api/company/widgetworks/user/johndoe?timezone=EST 919 // Translated: 920 // https://example.cloudfunctions.net/getUser?timezone=EST&cid=widgetworks&uid=johndoe 921 // "APPEND_PATH_TO_ADDRESS" - The request path will be appended to the 922 // backend address. # Examples Given the following operation config: 923 // Method path: /api/company/{cid}/user/{uid} Backend address: 924 // https://example.appspot.com Requests to the following request paths 925 // will call the backend at the translated path: Request path: 926 // /api/company/widgetworks/user/johndoe Translated: 927 // https://example.appspot.com/api/company/widgetworks/user/johndoe 928 // Request path: /api/company/widgetworks/user/johndoe?timezone=EST 929 // Translated: 930 // https://example.appspot.com/api/company/widgetworks/user/johndoe?timezone=EST 931 PathTranslation string `json:"pathTranslation,omitempty"` 932 933 // Protocol: The protocol used for sending a request to the backend. The 934 // supported values are "http/1.1" and "h2". The default value is 935 // inferred from the scheme in the address field: SCHEME PROTOCOL 936 // http:// http/1.1 https:// http/1.1 grpc:// h2 grpcs:// h2 For secure 937 // HTTP backends (https://) that support HTTP/2, set this field to "h2" 938 // for improved performance. Configuring this field to non-default 939 // values is only supported for secure HTTP backends. This field will be 940 // ignored for all other backends. See 941 // https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids 942 // for more details on the supported values. 943 Protocol string `json:"protocol,omitempty"` 944 945 // Selector: Selects the methods to which this rule applies. Refer to 946 // selector for syntax details. 947 Selector string `json:"selector,omitempty"` 948 949 // ForceSendFields is a list of field names (e.g. "Address") to 950 // unconditionally include in API requests. By default, fields with 951 // empty values are omitted from API requests. However, any non-pointer, 952 // non-interface field appearing in ForceSendFields will be sent to the 953 // server regardless of whether the field is empty or not. This may be 954 // used to include empty fields in Patch requests. 955 ForceSendFields []string `json:"-"` 956 957 // NullFields is a list of field names (e.g. "Address") to include in 958 // API requests with the JSON null value. By default, fields with empty 959 // values are omitted from API requests. However, any field with an 960 // empty value appearing in NullFields will be sent to the server as 961 // null. It is an error if a field in this list has a non-empty value. 962 // This may be used to include null fields in Patch requests. 963 NullFields []string `json:"-"` 964} 965 966func (s *BackendRule) MarshalJSON() ([]byte, error) { 967 type NoMethod BackendRule 968 raw := NoMethod(*s) 969 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 970} 971 972func (s *BackendRule) UnmarshalJSON(data []byte) error { 973 type NoMethod BackendRule 974 var s1 struct { 975 Deadline gensupport.JSONFloat64 `json:"deadline"` 976 MinDeadline gensupport.JSONFloat64 `json:"minDeadline"` 977 OperationDeadline gensupport.JSONFloat64 `json:"operationDeadline"` 978 *NoMethod 979 } 980 s1.NoMethod = (*NoMethod)(s) 981 if err := json.Unmarshal(data, &s1); err != nil { 982 return err 983 } 984 s.Deadline = float64(s1.Deadline) 985 s.MinDeadline = float64(s1.MinDeadline) 986 s.OperationDeadline = float64(s1.OperationDeadline) 987 return nil 988} 989 990// Billing: Billing related configuration of the service. The following 991// example shows how to configure monitored resources and metrics for 992// billing, `consumer_destinations` is the only supported destination 993// and the monitored resources need at least one label key 994// `cloud.googleapis.com/location` to indicate the location of the 995// billing usage, using different monitored resources between monitoring 996// and billing is recommended so they can be evolved independently: 997// monitored_resources: - type: library.googleapis.com/billing_branch 998// labels: - key: cloud.googleapis.com/location description: | 999// Predefined label to support billing location restriction. - key: city 1000// description: | Custom label to define the city where the library 1001// branch is located in. - key: name description: Custom label to define 1002// the name of the library branch. metrics: - name: 1003// library.googleapis.com/book/borrowed_count metric_kind: DELTA 1004// value_type: INT64 unit: "1" billing: consumer_destinations: - 1005// monitored_resource: library.googleapis.com/billing_branch metrics: - 1006// library.googleapis.com/book/borrowed_count 1007type Billing struct { 1008 // ConsumerDestinations: Billing configurations for sending metrics to 1009 // the consumer project. There can be multiple consumer destinations per 1010 // service, each one must have a different monitored resource type. A 1011 // metric can be used in at most one consumer destination. 1012 ConsumerDestinations []*BillingDestination `json:"consumerDestinations,omitempty"` 1013 1014 // ForceSendFields is a list of field names (e.g. 1015 // "ConsumerDestinations") to unconditionally include in API requests. 1016 // By default, fields with empty values are omitted from API requests. 1017 // However, any non-pointer, non-interface field appearing in 1018 // ForceSendFields will be sent to the server regardless of whether the 1019 // field is empty or not. This may be used to include empty fields in 1020 // Patch requests. 1021 ForceSendFields []string `json:"-"` 1022 1023 // NullFields is a list of field names (e.g. "ConsumerDestinations") to 1024 // include in API requests with the JSON null value. By default, fields 1025 // with empty values are omitted from API requests. However, any field 1026 // with an empty value appearing in NullFields will be sent to the 1027 // server as null. It is an error if a field in this list has a 1028 // non-empty value. This may be used to include null fields in Patch 1029 // requests. 1030 NullFields []string `json:"-"` 1031} 1032 1033func (s *Billing) MarshalJSON() ([]byte, error) { 1034 type NoMethod Billing 1035 raw := NoMethod(*s) 1036 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1037} 1038 1039// BillingDestination: Configuration of a specific billing destination 1040// (Currently only support bill against consumer project). 1041type BillingDestination struct { 1042 // Metrics: Names of the metrics to report to this billing destination. 1043 // Each name must be defined in Service.metrics section. 1044 Metrics []string `json:"metrics,omitempty"` 1045 1046 // MonitoredResource: The monitored resource type. The type must be 1047 // defined in Service.monitored_resources section. 1048 MonitoredResource string `json:"monitoredResource,omitempty"` 1049 1050 // ForceSendFields is a list of field names (e.g. "Metrics") to 1051 // unconditionally include in API requests. By default, fields with 1052 // empty values are omitted from API requests. However, any non-pointer, 1053 // non-interface field appearing in ForceSendFields will be sent to the 1054 // server regardless of whether the field is empty or not. This may be 1055 // used to include empty fields in Patch requests. 1056 ForceSendFields []string `json:"-"` 1057 1058 // NullFields is a list of field names (e.g. "Metrics") to include in 1059 // API requests with the JSON null value. By default, fields with empty 1060 // values are omitted from API requests. However, any field with an 1061 // empty value appearing in NullFields will be sent to the server as 1062 // null. It is an error if a field in this list has a non-empty value. 1063 // This may be used to include null fields in Patch requests. 1064 NullFields []string `json:"-"` 1065} 1066 1067func (s *BillingDestination) MarshalJSON() ([]byte, error) { 1068 type NoMethod BillingDestination 1069 raw := NoMethod(*s) 1070 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1071} 1072 1073// CancelOperationRequest: The request message for 1074// Operations.CancelOperation. 1075type CancelOperationRequest struct { 1076} 1077 1078// Connection: Represents a private connection resource. A private 1079// connection is implemented as a VPC Network Peering connection between 1080// a service producer's VPC network and a service consumer's VPC 1081// network. 1082type Connection struct { 1083 // Network: The name of service consumer's VPC network that's connected 1084 // with service producer network, in the following format: 1085 // `projects/{project}/global/networks/{network}`. `{project}` is a 1086 // project number, such as in `12345` that includes the VPC service 1087 // consumer's VPC network. `{network}` is the name of the service 1088 // consumer's VPC network. 1089 Network string `json:"network,omitempty"` 1090 1091 // Peering: Output only. The name of the VPC Network Peering connection 1092 // that was created by the service producer. 1093 Peering string `json:"peering,omitempty"` 1094 1095 // ReservedPeeringRanges: The name of one or more allocated IP address 1096 // ranges for this service producer of type `PEERING`. Note that 1097 // invoking CreateConnection method with a different range when 1098 // connection is already established will not modify already provisioned 1099 // service producer subnetworks. If CreateConnection method is invoked 1100 // repeatedly to reconnect when peering connection had been disconnected 1101 // on the consumer side, leaving this field empty will restore 1102 // previously allocated IP ranges. 1103 ReservedPeeringRanges []string `json:"reservedPeeringRanges,omitempty"` 1104 1105 // Service: Output only. The name of the peering service that's 1106 // associated with this connection, in the following format: 1107 // `services/{service name}`. 1108 Service string `json:"service,omitempty"` 1109 1110 // ForceSendFields is a list of field names (e.g. "Network") to 1111 // unconditionally include in API requests. By default, fields with 1112 // empty values are omitted from API requests. However, any non-pointer, 1113 // non-interface field appearing in ForceSendFields will be sent to the 1114 // server regardless of whether the field is empty or not. This may be 1115 // used to include empty fields in Patch requests. 1116 ForceSendFields []string `json:"-"` 1117 1118 // NullFields is a list of field names (e.g. "Network") to include in 1119 // API requests with the JSON null value. By default, fields with empty 1120 // values are omitted from API requests. However, any field with an 1121 // empty value appearing in NullFields will be sent to the server as 1122 // null. It is an error if a field in this list has a non-empty value. 1123 // This may be used to include null fields in Patch requests. 1124 NullFields []string `json:"-"` 1125} 1126 1127func (s *Connection) MarshalJSON() ([]byte, error) { 1128 type NoMethod Connection 1129 raw := NoMethod(*s) 1130 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1131} 1132 1133// ConsumerConfig: Configuration information for a private service 1134// access connection. 1135type ConsumerConfig struct { 1136 // ConsumerExportCustomRoutes: Export custom routes flag value for 1137 // peering from consumer to producer. 1138 ConsumerExportCustomRoutes bool `json:"consumerExportCustomRoutes,omitempty"` 1139 1140 // ConsumerExportSubnetRoutesWithPublicIp: Export subnet routes with 1141 // public ip flag value for peering from consumer to producer. 1142 ConsumerExportSubnetRoutesWithPublicIp bool `json:"consumerExportSubnetRoutesWithPublicIp,omitempty"` 1143 1144 // ConsumerImportCustomRoutes: Import custom routes flag value for 1145 // peering from consumer to producer. 1146 ConsumerImportCustomRoutes bool `json:"consumerImportCustomRoutes,omitempty"` 1147 1148 // ConsumerImportSubnetRoutesWithPublicIp: Import subnet routes with 1149 // public ip flag value for peering from consumer to producer. 1150 ConsumerImportSubnetRoutesWithPublicIp bool `json:"consumerImportSubnetRoutesWithPublicIp,omitempty"` 1151 1152 // ProducerExportCustomRoutes: Export custom routes flag value for 1153 // peering from producer to consumer. 1154 ProducerExportCustomRoutes bool `json:"producerExportCustomRoutes,omitempty"` 1155 1156 // ProducerExportSubnetRoutesWithPublicIp: Export subnet routes with 1157 // public ip flag value for peering from producer to consumer. 1158 ProducerExportSubnetRoutesWithPublicIp bool `json:"producerExportSubnetRoutesWithPublicIp,omitempty"` 1159 1160 // ProducerImportCustomRoutes: Import custom routes flag value for 1161 // peering from producer to consumer. 1162 ProducerImportCustomRoutes bool `json:"producerImportCustomRoutes,omitempty"` 1163 1164 // ProducerImportSubnetRoutesWithPublicIp: Import subnet routes with 1165 // public ip flag value for peering from producer to consumer. 1166 ProducerImportSubnetRoutesWithPublicIp bool `json:"producerImportSubnetRoutesWithPublicIp,omitempty"` 1167 1168 // ProducerNetwork: Output only. The VPC host network that is used to 1169 // host managed service instances. In the format, 1170 // projects/{project}/global/networks/{network} where {project} is the 1171 // project number e.g. '12345' and {network} is the network name. 1172 ProducerNetwork string `json:"producerNetwork,omitempty"` 1173 1174 // ReservedRanges: Output only. The reserved ranges associated with this 1175 // private service access connection. 1176 ReservedRanges []*GoogleCloudServicenetworkingV1ConsumerConfigReservedRange `json:"reservedRanges,omitempty"` 1177 1178 // VpcScReferenceArchitectureEnabled: Output only. Indicates whether the 1179 // VPC Service Controls reference architecture is configured for the 1180 // producer VPC host network. 1181 VpcScReferenceArchitectureEnabled bool `json:"vpcScReferenceArchitectureEnabled,omitempty"` 1182 1183 // ServerResponse contains the HTTP response code and headers from the 1184 // server. 1185 googleapi.ServerResponse `json:"-"` 1186 1187 // ForceSendFields is a list of field names (e.g. 1188 // "ConsumerExportCustomRoutes") to unconditionally include in API 1189 // requests. By default, fields with empty values are omitted from API 1190 // requests. However, any non-pointer, non-interface field appearing in 1191 // ForceSendFields will be sent to the server regardless of whether the 1192 // field is empty or not. This may be used to include empty fields in 1193 // Patch requests. 1194 ForceSendFields []string `json:"-"` 1195 1196 // NullFields is a list of field names (e.g. 1197 // "ConsumerExportCustomRoutes") to include in API requests with the 1198 // JSON null value. By default, fields with empty values are omitted 1199 // from API requests. However, any field with an empty value appearing 1200 // in NullFields will be sent to the server as null. It is an error if a 1201 // field in this list has a non-empty value. This may be used to include 1202 // null fields in Patch requests. 1203 NullFields []string `json:"-"` 1204} 1205 1206func (s *ConsumerConfig) MarshalJSON() ([]byte, error) { 1207 type NoMethod ConsumerConfig 1208 raw := NoMethod(*s) 1209 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1210} 1211 1212// ConsumerConfigMetadata: Metadata provided through GetOperation 1213// request for the LRO generated by UpdateConsumerConfig API. 1214type ConsumerConfigMetadata struct { 1215} 1216 1217// ConsumerProject: Represents a consumer project. 1218type ConsumerProject struct { 1219 // ProjectNum: Required. Project number of the consumer that is 1220 // launching the service instance. It can own the network that is peered 1221 // with Google or, be a service project in an XPN where the host project 1222 // has the network. 1223 ProjectNum int64 `json:"projectNum,omitempty,string"` 1224 1225 // ForceSendFields is a list of field names (e.g. "ProjectNum") to 1226 // unconditionally include in API requests. By default, fields with 1227 // empty values are omitted from API requests. However, any non-pointer, 1228 // non-interface field appearing in ForceSendFields will be sent to the 1229 // server regardless of whether the field is empty or not. This may be 1230 // used to include empty fields in Patch requests. 1231 ForceSendFields []string `json:"-"` 1232 1233 // NullFields is a list of field names (e.g. "ProjectNum") to include in 1234 // API requests with the JSON null value. By default, fields with empty 1235 // values are omitted from API requests. However, any field with an 1236 // empty value appearing in NullFields will be sent to the server as 1237 // null. It is an error if a field in this list has a non-empty value. 1238 // This may be used to include null fields in Patch requests. 1239 NullFields []string `json:"-"` 1240} 1241 1242func (s *ConsumerProject) MarshalJSON() ([]byte, error) { 1243 type NoMethod ConsumerProject 1244 raw := NoMethod(*s) 1245 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1246} 1247 1248// Context: `Context` defines which contexts an API requests. Example: 1249// context: rules: - selector: "*" requested: - 1250// google.rpc.context.ProjectContext - google.rpc.context.OriginContext 1251// The above specifies that all methods in the API request 1252// `google.rpc.context.ProjectContext` and 1253// `google.rpc.context.OriginContext`. Available context types are 1254// defined in package `google.rpc.context`. This also provides mechanism 1255// to allowlist any protobuf message extension that can be sent in grpc 1256// metadata using “x-goog-ext--bin” and “x-goog-ext--jspb” 1257// format. For example, list any service specific protobuf types that 1258// can appear in grpc metadata as follows in your yaml file: Example: 1259// context: rules: - selector: 1260// "google.example.library.v1.LibraryService.CreateBook" 1261// allowed_request_extensions: - google.foo.v1.NewExtension 1262// allowed_response_extensions: - google.foo.v1.NewExtension You can 1263// also specify extension ID instead of fully qualified extension name 1264// here. 1265type Context struct { 1266 // Rules: A list of RPC context rules that apply to individual API 1267 // methods. **NOTE:** All service configuration rules follow "last one 1268 // wins" order. 1269 Rules []*ContextRule `json:"rules,omitempty"` 1270 1271 // ForceSendFields is a list of field names (e.g. "Rules") to 1272 // unconditionally include in API requests. By default, fields with 1273 // empty values are omitted from API requests. However, any non-pointer, 1274 // non-interface field appearing in ForceSendFields will be sent to the 1275 // server regardless of whether the field is empty or not. This may be 1276 // used to include empty fields in Patch requests. 1277 ForceSendFields []string `json:"-"` 1278 1279 // NullFields is a list of field names (e.g. "Rules") to include in API 1280 // requests with the JSON null value. By default, fields with empty 1281 // values are omitted from API requests. However, any field with an 1282 // empty value appearing in NullFields will be sent to the server as 1283 // null. It is an error if a field in this list has a non-empty value. 1284 // This may be used to include null fields in Patch requests. 1285 NullFields []string `json:"-"` 1286} 1287 1288func (s *Context) MarshalJSON() ([]byte, error) { 1289 type NoMethod Context 1290 raw := NoMethod(*s) 1291 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1292} 1293 1294// ContextRule: A context rule provides information about the context 1295// for an individual API element. 1296type ContextRule struct { 1297 // AllowedRequestExtensions: A list of full type names or extension IDs 1298 // of extensions allowed in grpc side channel from client to backend. 1299 AllowedRequestExtensions []string `json:"allowedRequestExtensions,omitempty"` 1300 1301 // AllowedResponseExtensions: A list of full type names or extension IDs 1302 // of extensions allowed in grpc side channel from backend to client. 1303 AllowedResponseExtensions []string `json:"allowedResponseExtensions,omitempty"` 1304 1305 // Provided: A list of full type names of provided contexts. 1306 Provided []string `json:"provided,omitempty"` 1307 1308 // Requested: A list of full type names of requested contexts. 1309 Requested []string `json:"requested,omitempty"` 1310 1311 // Selector: Selects the methods to which this rule applies. Refer to 1312 // selector for syntax details. 1313 Selector string `json:"selector,omitempty"` 1314 1315 // ForceSendFields is a list of field names (e.g. 1316 // "AllowedRequestExtensions") to unconditionally include in API 1317 // requests. By default, fields with empty values are omitted from API 1318 // requests. However, any non-pointer, non-interface field appearing in 1319 // ForceSendFields will be sent to the server regardless of whether the 1320 // field is empty or not. This may be used to include empty fields in 1321 // Patch requests. 1322 ForceSendFields []string `json:"-"` 1323 1324 // NullFields is a list of field names (e.g. "AllowedRequestExtensions") 1325 // to include in API requests with the JSON null value. By default, 1326 // fields with empty values are omitted from API requests. However, any 1327 // field with an empty value appearing in NullFields will be sent to the 1328 // server as null. It is an error if a field in this list has a 1329 // non-empty value. This may be used to include null fields in Patch 1330 // requests. 1331 NullFields []string `json:"-"` 1332} 1333 1334func (s *ContextRule) MarshalJSON() ([]byte, error) { 1335 type NoMethod ContextRule 1336 raw := NoMethod(*s) 1337 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1338} 1339 1340// Control: Selects and configures the service controller used by the 1341// service. The service controller handles features like abuse, quota, 1342// billing, logging, monitoring, etc. 1343type Control struct { 1344 // Environment: The service control environment to use. If empty, no 1345 // control plane feature (like quota and billing) will be enabled. 1346 Environment string `json:"environment,omitempty"` 1347 1348 // ForceSendFields is a list of field names (e.g. "Environment") to 1349 // unconditionally include in API requests. By default, fields with 1350 // empty values are omitted from API requests. However, any non-pointer, 1351 // non-interface field appearing in ForceSendFields will be sent to the 1352 // server regardless of whether the field is empty or not. This may be 1353 // used to include empty fields in Patch requests. 1354 ForceSendFields []string `json:"-"` 1355 1356 // NullFields is a list of field names (e.g. "Environment") to include 1357 // in API requests with the JSON null value. By default, fields with 1358 // empty values are omitted from API requests. However, any field with 1359 // an empty value appearing in NullFields will be sent to the server as 1360 // null. It is an error if a field in this list has a non-empty value. 1361 // This may be used to include null fields in Patch requests. 1362 NullFields []string `json:"-"` 1363} 1364 1365func (s *Control) MarshalJSON() ([]byte, error) { 1366 type NoMethod Control 1367 raw := NoMethod(*s) 1368 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1369} 1370 1371// CustomError: Customize service error responses. For example, list any 1372// service specific protobuf types that can appear in error detail lists 1373// of error responses. Example: custom_error: types: - 1374// google.foo.v1.CustomError - google.foo.v1.AnotherError 1375type CustomError struct { 1376 // Rules: The list of custom error rules that apply to individual API 1377 // messages. **NOTE:** All service configuration rules follow "last one 1378 // wins" order. 1379 Rules []*CustomErrorRule `json:"rules,omitempty"` 1380 1381 // Types: The list of custom error detail types, e.g. 1382 // 'google.foo.v1.CustomError'. 1383 Types []string `json:"types,omitempty"` 1384 1385 // ForceSendFields is a list of field names (e.g. "Rules") to 1386 // unconditionally include in API requests. By default, fields with 1387 // empty values are omitted from API requests. However, any non-pointer, 1388 // non-interface field appearing in ForceSendFields will be sent to the 1389 // server regardless of whether the field is empty or not. This may be 1390 // used to include empty fields in Patch requests. 1391 ForceSendFields []string `json:"-"` 1392 1393 // NullFields is a list of field names (e.g. "Rules") to include in API 1394 // requests with the JSON null value. By default, fields with empty 1395 // values are omitted from API requests. However, any field with an 1396 // empty value appearing in NullFields will be sent to the server as 1397 // null. It is an error if a field in this list has a non-empty value. 1398 // This may be used to include null fields in Patch requests. 1399 NullFields []string `json:"-"` 1400} 1401 1402func (s *CustomError) MarshalJSON() ([]byte, error) { 1403 type NoMethod CustomError 1404 raw := NoMethod(*s) 1405 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1406} 1407 1408// CustomErrorRule: A custom error rule. 1409type CustomErrorRule struct { 1410 // IsErrorType: Mark this message as possible payload in error response. 1411 // Otherwise, objects of this type will be filtered when they appear in 1412 // error payload. 1413 IsErrorType bool `json:"isErrorType,omitempty"` 1414 1415 // Selector: Selects messages to which this rule applies. Refer to 1416 // selector for syntax details. 1417 Selector string `json:"selector,omitempty"` 1418 1419 // ForceSendFields is a list of field names (e.g. "IsErrorType") to 1420 // unconditionally include in API requests. By default, fields with 1421 // empty values are omitted from API requests. However, any non-pointer, 1422 // non-interface field appearing in ForceSendFields will be sent to the 1423 // server regardless of whether the field is empty or not. This may be 1424 // used to include empty fields in Patch requests. 1425 ForceSendFields []string `json:"-"` 1426 1427 // NullFields is a list of field names (e.g. "IsErrorType") to include 1428 // in API requests with the JSON null value. By default, fields with 1429 // empty values are omitted from API requests. However, any field with 1430 // an empty value appearing in NullFields will be sent to the server as 1431 // null. It is an error if a field in this list has a non-empty value. 1432 // This may be used to include null fields in Patch requests. 1433 NullFields []string `json:"-"` 1434} 1435 1436func (s *CustomErrorRule) MarshalJSON() ([]byte, error) { 1437 type NoMethod CustomErrorRule 1438 raw := NoMethod(*s) 1439 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1440} 1441 1442// CustomHttpPattern: A custom pattern is used for defining custom HTTP 1443// verb. 1444type CustomHttpPattern struct { 1445 // Kind: The name of this custom HTTP verb. 1446 Kind string `json:"kind,omitempty"` 1447 1448 // Path: The path matched by this custom verb. 1449 Path string `json:"path,omitempty"` 1450 1451 // ForceSendFields is a list of field names (e.g. "Kind") to 1452 // unconditionally include in API requests. By default, fields with 1453 // empty values are omitted from API requests. However, any non-pointer, 1454 // non-interface field appearing in ForceSendFields will be sent to the 1455 // server regardless of whether the field is empty or not. This may be 1456 // used to include empty fields in Patch requests. 1457 ForceSendFields []string `json:"-"` 1458 1459 // NullFields is a list of field names (e.g. "Kind") to include in API 1460 // requests with the JSON null value. By default, fields with empty 1461 // values are omitted from API requests. However, any field with an 1462 // empty value appearing in NullFields will be sent to the server as 1463 // null. It is an error if a field in this list has a non-empty value. 1464 // This may be used to include null fields in Patch requests. 1465 NullFields []string `json:"-"` 1466} 1467 1468func (s *CustomHttpPattern) MarshalJSON() ([]byte, error) { 1469 type NoMethod CustomHttpPattern 1470 raw := NoMethod(*s) 1471 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1472} 1473 1474// DeleteConnectionMetadata: Metadata provided through GetOperation 1475// request for the LRO generated by Delete Connection API 1476type DeleteConnectionMetadata struct { 1477} 1478 1479// DeletePeeredDnsDomainMetadata: Metadata provided through GetOperation 1480// request for the LRO generated by DeletePeeredDnsDomain API. 1481type DeletePeeredDnsDomainMetadata struct { 1482} 1483 1484// DisableVpcServiceControlsRequest: Request to disable VPC service 1485// controls. 1486type DisableVpcServiceControlsRequest struct { 1487 // ConsumerNetwork: Required. The network that the consumer is using to 1488 // connect with services. Must be in the form of 1489 // projects/{project}/global/networks/{network} {project} is a project 1490 // number, as in '12345' {network} is network name. 1491 ConsumerNetwork string `json:"consumerNetwork,omitempty"` 1492 1493 // ForceSendFields is a list of field names (e.g. "ConsumerNetwork") to 1494 // unconditionally include in API requests. By default, fields with 1495 // empty values are omitted from API requests. However, any non-pointer, 1496 // non-interface field appearing in ForceSendFields will be sent to the 1497 // server regardless of whether the field is empty or not. This may be 1498 // used to include empty fields in Patch requests. 1499 ForceSendFields []string `json:"-"` 1500 1501 // NullFields is a list of field names (e.g. "ConsumerNetwork") 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 *DisableVpcServiceControlsRequest) MarshalJSON() ([]byte, error) { 1512 type NoMethod DisableVpcServiceControlsRequest 1513 raw := NoMethod(*s) 1514 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1515} 1516 1517// DnsRecordSet: Represents a DNS record set resource. 1518type DnsRecordSet struct { 1519 // Data: Required. As defined in RFC 1035 (section 5) and RFC 1034 1520 // (section 3.6.1) for examples see 1521 // https://cloud.google.com/dns/records/json-record. 1522 Data []string `json:"data,omitempty"` 1523 1524 // Domain: Required. The DNS or domain name of the record set, e.g. 1525 // `test.example.com`. 1526 Domain string `json:"domain,omitempty"` 1527 1528 // Ttl: Required. The period of time for which this RecordSet can be 1529 // cached by resolvers. 1530 Ttl string `json:"ttl,omitempty"` 1531 1532 // Type: Required. The identifier of a supported record type. 1533 Type string `json:"type,omitempty"` 1534 1535 // ForceSendFields is a list of field names (e.g. "Data") to 1536 // unconditionally include in API requests. By default, fields with 1537 // empty values are omitted from API requests. However, any non-pointer, 1538 // non-interface field appearing in ForceSendFields will be sent to the 1539 // server regardless of whether the field is empty or not. This may be 1540 // used to include empty fields in Patch requests. 1541 ForceSendFields []string `json:"-"` 1542 1543 // NullFields is a list of field names (e.g. "Data") to include in API 1544 // requests with the JSON null value. By default, fields with empty 1545 // values are omitted from API requests. However, any field with an 1546 // empty value appearing in NullFields will be sent to the server as 1547 // null. It is an error if a field in this list has a non-empty value. 1548 // This may be used to include null fields in Patch requests. 1549 NullFields []string `json:"-"` 1550} 1551 1552func (s *DnsRecordSet) MarshalJSON() ([]byte, error) { 1553 type NoMethod DnsRecordSet 1554 raw := NoMethod(*s) 1555 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1556} 1557 1558// DnsZone: Represents a DNS zone resource. 1559type DnsZone struct { 1560 // DnsSuffix: The DNS name suffix of this zone e.g. `example.com.`. 1561 DnsSuffix string `json:"dnsSuffix,omitempty"` 1562 1563 // Name: User assigned name for this resource. Must be unique within the 1564 // project. The name must be 1-63 characters long, must begin with a 1565 // letter, end with a letter or digit, and only contain lowercase 1566 // letters, digits or dashes. 1567 Name string `json:"name,omitempty"` 1568 1569 // ForceSendFields is a list of field names (e.g. "DnsSuffix") to 1570 // unconditionally include in API requests. By default, fields with 1571 // empty values are omitted from API requests. However, any non-pointer, 1572 // non-interface field appearing in ForceSendFields will be sent to the 1573 // server regardless of whether the field is empty or not. This may be 1574 // used to include empty fields in Patch requests. 1575 ForceSendFields []string `json:"-"` 1576 1577 // NullFields is a list of field names (e.g. "DnsSuffix") to include in 1578 // API requests with the JSON null value. By default, fields with empty 1579 // values are omitted from API requests. However, any field with an 1580 // empty value appearing in NullFields will be sent to the server as 1581 // null. It is an error if a field in this list has a non-empty value. 1582 // This may be used to include null fields in Patch requests. 1583 NullFields []string `json:"-"` 1584} 1585 1586func (s *DnsZone) MarshalJSON() ([]byte, error) { 1587 type NoMethod DnsZone 1588 raw := NoMethod(*s) 1589 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1590} 1591 1592// Documentation: `Documentation` provides the information for 1593// describing a service. Example: documentation: summary: > The Google 1594// Calendar API gives access to most calendar features. pages: - name: 1595// Overview content: (== include google/foo/overview.md ==) - name: 1596// Tutorial content: (== include google/foo/tutorial.md ==) subpages; - 1597// name: Java content: (== include google/foo/tutorial_java.md ==) 1598// rules: - selector: google.calendar.Calendar.Get description: > ... - 1599// selector: google.calendar.Calendar.Put description: > ... 1600// Documentation is provided in markdown syntax. In addition to standard 1601// markdown features, definition lists, tables and fenced code blocks 1602// are supported. Section headers can be provided and are interpreted 1603// relative to the section nesting of the context where a documentation 1604// fragment is embedded. Documentation from the IDL is merged with 1605// documentation defined via the config at normalization time, where 1606// documentation provided by config rules overrides IDL provided. A 1607// number of constructs specific to the API platform are supported in 1608// documentation text. In order to reference a proto element, the 1609// following notation can be used: [fully.qualified.proto.name][] To 1610// override the display text used for the link, this can be used: 1611// [display text][fully.qualified.proto.name] Text can be excluded from 1612// doc using the following notation: (-- internal comment --) A few 1613// directives are available in documentation. Note that directives must 1614// appear on a single line to be properly identified. The `include` 1615// directive includes a markdown file from an external source: (== 1616// include path/to/file ==) The `resource_for` directive marks a message 1617// to be the resource of a collection in REST view. If it is not 1618// specified, tools attempt to infer the resource from the operations in 1619// a collection: (== resource_for v1.shelves.books ==) The directive 1620// `suppress_warning` does not directly affect documentation and is 1621// documented together with service config validation. 1622type Documentation struct { 1623 // DocumentationRootUrl: The URL to the root of documentation. 1624 DocumentationRootUrl string `json:"documentationRootUrl,omitempty"` 1625 1626 // Overview: Declares a single overview page. For example: 1627 // documentation: summary: ... overview: (== include overview.md ==) 1628 // This is a shortcut for the following declaration (using pages style): 1629 // documentation: summary: ... pages: - name: Overview content: (== 1630 // include overview.md ==) Note: you cannot specify both `overview` 1631 // field and `pages` field. 1632 Overview string `json:"overview,omitempty"` 1633 1634 // Pages: The top level pages for the documentation set. 1635 Pages []*Page `json:"pages,omitempty"` 1636 1637 // Rules: A list of documentation rules that apply to individual API 1638 // elements. **NOTE:** All service configuration rules follow "last one 1639 // wins" order. 1640 Rules []*DocumentationRule `json:"rules,omitempty"` 1641 1642 // ServiceRootUrl: Specifies the service root url if the default one 1643 // (the service name from the yaml file) is not suitable. This can be 1644 // seen in any fully specified service urls as well as sections that 1645 // show a base that other urls are relative to. 1646 ServiceRootUrl string `json:"serviceRootUrl,omitempty"` 1647 1648 // Summary: A short summary of what the service does. Can only be 1649 // provided by plain text. 1650 Summary string `json:"summary,omitempty"` 1651 1652 // ForceSendFields is a list of field names (e.g. 1653 // "DocumentationRootUrl") to unconditionally include in API requests. 1654 // By default, fields with empty values are omitted from API requests. 1655 // However, any non-pointer, non-interface field appearing in 1656 // ForceSendFields will be sent to the server regardless of whether the 1657 // field is empty or not. This may be used to include empty fields in 1658 // Patch requests. 1659 ForceSendFields []string `json:"-"` 1660 1661 // NullFields is a list of field names (e.g. "DocumentationRootUrl") to 1662 // include in API requests with the JSON null value. By default, fields 1663 // with empty values are omitted from API requests. However, any field 1664 // with an empty value appearing in NullFields will be sent to the 1665 // server as null. It is an error if a field in this list has a 1666 // non-empty value. This may be used to include null fields in Patch 1667 // requests. 1668 NullFields []string `json:"-"` 1669} 1670 1671func (s *Documentation) MarshalJSON() ([]byte, error) { 1672 type NoMethod Documentation 1673 raw := NoMethod(*s) 1674 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1675} 1676 1677// DocumentationRule: A documentation rule provides information about 1678// individual API elements. 1679type DocumentationRule struct { 1680 // DeprecationDescription: Deprecation description of the selected 1681 // element(s). It can be provided if an element is marked as 1682 // `deprecated`. 1683 DeprecationDescription string `json:"deprecationDescription,omitempty"` 1684 1685 // Description: Description of the selected API(s). 1686 Description string `json:"description,omitempty"` 1687 1688 // Selector: The selector is a comma-separated list of patterns. Each 1689 // pattern is a qualified name of the element which may end in "*", 1690 // indicating a wildcard. Wildcards are only allowed at the end and for 1691 // a whole component of the qualified name, i.e. "foo.*" is ok, but not 1692 // "foo.b*" or "foo.*.bar". A wildcard will match one or more 1693 // components. To specify a default for all applicable elements, the 1694 // whole pattern "*" is used. 1695 Selector string `json:"selector,omitempty"` 1696 1697 // ForceSendFields is a list of field names (e.g. 1698 // "DeprecationDescription") to unconditionally include in API requests. 1699 // By default, fields with empty values are omitted from API requests. 1700 // However, any non-pointer, non-interface field appearing in 1701 // ForceSendFields will be sent to the server regardless of whether the 1702 // field is empty or not. This may be used to include empty fields in 1703 // Patch requests. 1704 ForceSendFields []string `json:"-"` 1705 1706 // NullFields is a list of field names (e.g. "DeprecationDescription") 1707 // to include in API requests with the JSON null value. By default, 1708 // fields with empty values are omitted from API requests. However, any 1709 // field with an empty value appearing in NullFields will be sent to the 1710 // server as null. It is an error if a field in this list has a 1711 // non-empty value. This may be used to include null fields in Patch 1712 // requests. 1713 NullFields []string `json:"-"` 1714} 1715 1716func (s *DocumentationRule) MarshalJSON() ([]byte, error) { 1717 type NoMethod DocumentationRule 1718 raw := NoMethod(*s) 1719 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1720} 1721 1722// Empty: A generic empty message that you can re-use to avoid defining 1723// duplicated empty messages in your APIs. A typical example is to use 1724// it as the request or the response type of an API method. For 1725// instance: service Foo { rpc Bar(google.protobuf.Empty) returns 1726// (google.protobuf.Empty); } The JSON representation for `Empty` is 1727// empty JSON object `{}`. 1728type Empty struct { 1729 // ServerResponse contains the HTTP response code and headers from the 1730 // server. 1731 googleapi.ServerResponse `json:"-"` 1732} 1733 1734// EnableVpcServiceControlsRequest: Request to enable VPC service 1735// controls. 1736type EnableVpcServiceControlsRequest struct { 1737 // ConsumerNetwork: Required. The network that the consumer is using to 1738 // connect with services. Must be in the form of 1739 // projects/{project}/global/networks/{network} {project} is a project 1740 // number, as in '12345' {network} is network name. 1741 ConsumerNetwork string `json:"consumerNetwork,omitempty"` 1742 1743 // ForceSendFields is a list of field names (e.g. "ConsumerNetwork") to 1744 // unconditionally include in API requests. By default, fields with 1745 // empty values are omitted from API requests. However, any non-pointer, 1746 // non-interface field appearing in ForceSendFields will be sent to the 1747 // server regardless of whether the field is empty or not. This may be 1748 // used to include empty fields in Patch requests. 1749 ForceSendFields []string `json:"-"` 1750 1751 // NullFields is a list of field names (e.g. "ConsumerNetwork") to 1752 // include in API requests with the JSON null value. By default, fields 1753 // with empty values are omitted from API requests. However, any field 1754 // with an empty value appearing in NullFields will be sent to the 1755 // server as null. It is an error if a field in this list has a 1756 // non-empty value. This may be used to include null fields in Patch 1757 // requests. 1758 NullFields []string `json:"-"` 1759} 1760 1761func (s *EnableVpcServiceControlsRequest) MarshalJSON() ([]byte, error) { 1762 type NoMethod EnableVpcServiceControlsRequest 1763 raw := NoMethod(*s) 1764 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1765} 1766 1767// Endpoint: `Endpoint` describes a network endpoint of a service that 1768// serves a set of APIs. It is commonly known as a service endpoint. A 1769// service may expose any number of service endpoints, and all service 1770// endpoints share the same service definition, such as quota limits and 1771// monitoring metrics. Example service configuration: name: 1772// library-example.googleapis.com endpoints: # Below entry makes 1773// 'google.example.library.v1.Library' # API be served from endpoint 1774// address library-example.googleapis.com. # It also allows HTTP OPTIONS 1775// calls to be passed to the backend, for # it to decide whether the 1776// subsequent cross-origin request is # allowed to proceed. - name: 1777// library-example.googleapis.com allow_cors: true 1778type Endpoint struct { 1779 // Aliases: DEPRECATED: This field is no longer supported. Instead of 1780 // using aliases, please specify multiple google.api.Endpoint for each 1781 // of the intended aliases. Additional names that this endpoint will be 1782 // hosted on. 1783 Aliases []string `json:"aliases,omitempty"` 1784 1785 // AllowCors: Allowing CORS 1786 // (https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka 1787 // cross-domain traffic, would allow the backends served from this 1788 // endpoint to receive and respond to HTTP OPTIONS requests. The 1789 // response will be used by the browser to determine whether the 1790 // subsequent cross-origin request is allowed to proceed. 1791 AllowCors bool `json:"allowCors,omitempty"` 1792 1793 // Name: The canonical name of this endpoint. 1794 Name string `json:"name,omitempty"` 1795 1796 // Target: The specification of an Internet routable address of API 1797 // frontend that will handle requests to this API Endpoint 1798 // (https://cloud.google.com/apis/design/glossary). It should be either 1799 // a valid IPv4 address or a fully-qualified domain name. For example, 1800 // "8.8.8.8" or "myservice.appspot.com". 1801 Target string `json:"target,omitempty"` 1802 1803 // ForceSendFields is a list of field names (e.g. "Aliases") to 1804 // unconditionally include in API requests. By default, fields with 1805 // empty values are omitted from API requests. However, any non-pointer, 1806 // non-interface field appearing in ForceSendFields will be sent to the 1807 // server regardless of whether the field is empty or not. This may be 1808 // used to include empty fields in Patch requests. 1809 ForceSendFields []string `json:"-"` 1810 1811 // NullFields is a list of field names (e.g. "Aliases") to include in 1812 // API requests with the JSON null value. By default, fields with empty 1813 // values are omitted from API requests. However, any field with an 1814 // empty value appearing in NullFields will be sent to the server as 1815 // null. It is an error if a field in this list has a non-empty value. 1816 // This may be used to include null fields in Patch requests. 1817 NullFields []string `json:"-"` 1818} 1819 1820func (s *Endpoint) MarshalJSON() ([]byte, error) { 1821 type NoMethod Endpoint 1822 raw := NoMethod(*s) 1823 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1824} 1825 1826// Enum: Enum type definition. 1827type Enum struct { 1828 // Enumvalue: Enum value definitions. 1829 Enumvalue []*EnumValue `json:"enumvalue,omitempty"` 1830 1831 // Name: Enum type name. 1832 Name string `json:"name,omitempty"` 1833 1834 // Options: Protocol buffer options. 1835 Options []*Option `json:"options,omitempty"` 1836 1837 // SourceContext: The source context. 1838 SourceContext *SourceContext `json:"sourceContext,omitempty"` 1839 1840 // Syntax: The source syntax. 1841 // 1842 // Possible values: 1843 // "SYNTAX_PROTO2" - Syntax `proto2`. 1844 // "SYNTAX_PROTO3" - Syntax `proto3`. 1845 Syntax string `json:"syntax,omitempty"` 1846 1847 // ForceSendFields is a list of field names (e.g. "Enumvalue") to 1848 // unconditionally include in API requests. By default, fields with 1849 // empty values are omitted from API requests. However, any non-pointer, 1850 // non-interface field appearing in ForceSendFields will be sent to the 1851 // server regardless of whether the field is empty or not. This may be 1852 // used to include empty fields in Patch requests. 1853 ForceSendFields []string `json:"-"` 1854 1855 // NullFields is a list of field names (e.g. "Enumvalue") to include in 1856 // API requests with the JSON null value. By default, fields with empty 1857 // values are omitted from API requests. However, any field with an 1858 // empty value appearing in NullFields will be sent to the server as 1859 // null. It is an error if a field in this list has a non-empty value. 1860 // This may be used to include null fields in Patch requests. 1861 NullFields []string `json:"-"` 1862} 1863 1864func (s *Enum) MarshalJSON() ([]byte, error) { 1865 type NoMethod Enum 1866 raw := NoMethod(*s) 1867 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1868} 1869 1870// EnumValue: Enum value definition. 1871type EnumValue struct { 1872 // Name: Enum value name. 1873 Name string `json:"name,omitempty"` 1874 1875 // Number: Enum value number. 1876 Number int64 `json:"number,omitempty"` 1877 1878 // Options: Protocol buffer options. 1879 Options []*Option `json:"options,omitempty"` 1880 1881 // ForceSendFields is a list of field names (e.g. "Name") to 1882 // unconditionally include in API requests. By default, fields with 1883 // empty values are omitted from API requests. However, any non-pointer, 1884 // non-interface field appearing in ForceSendFields will be sent to the 1885 // server regardless of whether the field is empty or not. This may be 1886 // used to include empty fields in Patch requests. 1887 ForceSendFields []string `json:"-"` 1888 1889 // NullFields is a list of field names (e.g. "Name") to include in API 1890 // requests with the JSON null value. By default, fields with empty 1891 // values are omitted from API requests. However, any field with an 1892 // empty value appearing in NullFields will be sent to the server as 1893 // null. It is an error if a field in this list has a non-empty value. 1894 // This may be used to include null fields in Patch requests. 1895 NullFields []string `json:"-"` 1896} 1897 1898func (s *EnumValue) MarshalJSON() ([]byte, error) { 1899 type NoMethod EnumValue 1900 raw := NoMethod(*s) 1901 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1902} 1903 1904// Field: A single field of a message type. 1905type Field struct { 1906 // Cardinality: The field cardinality. 1907 // 1908 // Possible values: 1909 // "CARDINALITY_UNKNOWN" - For fields with unknown cardinality. 1910 // "CARDINALITY_OPTIONAL" - For optional fields. 1911 // "CARDINALITY_REQUIRED" - For required fields. Proto2 syntax only. 1912 // "CARDINALITY_REPEATED" - For repeated fields. 1913 Cardinality string `json:"cardinality,omitempty"` 1914 1915 // DefaultValue: The string value of the default value of this field. 1916 // Proto2 syntax only. 1917 DefaultValue string `json:"defaultValue,omitempty"` 1918 1919 // JsonName: The field JSON name. 1920 JsonName string `json:"jsonName,omitempty"` 1921 1922 // Kind: The field type. 1923 // 1924 // Possible values: 1925 // "TYPE_UNKNOWN" - Field type unknown. 1926 // "TYPE_DOUBLE" - Field type double. 1927 // "TYPE_FLOAT" - Field type float. 1928 // "TYPE_INT64" - Field type int64. 1929 // "TYPE_UINT64" - Field type uint64. 1930 // "TYPE_INT32" - Field type int32. 1931 // "TYPE_FIXED64" - Field type fixed64. 1932 // "TYPE_FIXED32" - Field type fixed32. 1933 // "TYPE_BOOL" - Field type bool. 1934 // "TYPE_STRING" - Field type string. 1935 // "TYPE_GROUP" - Field type group. Proto2 syntax only, and 1936 // deprecated. 1937 // "TYPE_MESSAGE" - Field type message. 1938 // "TYPE_BYTES" - Field type bytes. 1939 // "TYPE_UINT32" - Field type uint32. 1940 // "TYPE_ENUM" - Field type enum. 1941 // "TYPE_SFIXED32" - Field type sfixed32. 1942 // "TYPE_SFIXED64" - Field type sfixed64. 1943 // "TYPE_SINT32" - Field type sint32. 1944 // "TYPE_SINT64" - Field type sint64. 1945 Kind string `json:"kind,omitempty"` 1946 1947 // Name: The field name. 1948 Name string `json:"name,omitempty"` 1949 1950 // Number: The field number. 1951 Number int64 `json:"number,omitempty"` 1952 1953 // OneofIndex: The index of the field type in `Type.oneofs`, for message 1954 // or enumeration types. The first type has index 1; zero means the type 1955 // is not in the list. 1956 OneofIndex int64 `json:"oneofIndex,omitempty"` 1957 1958 // Options: The protocol buffer options. 1959 Options []*Option `json:"options,omitempty"` 1960 1961 // Packed: Whether to use alternative packed wire representation. 1962 Packed bool `json:"packed,omitempty"` 1963 1964 // TypeUrl: The field type URL, without the scheme, for message or 1965 // enumeration types. Example: 1966 // "type.googleapis.com/google.protobuf.Timestamp". 1967 TypeUrl string `json:"typeUrl,omitempty"` 1968 1969 // ForceSendFields is a list of field names (e.g. "Cardinality") to 1970 // unconditionally include in API requests. By default, fields with 1971 // empty values are omitted from API requests. However, any non-pointer, 1972 // non-interface field appearing in ForceSendFields will be sent to the 1973 // server regardless of whether the field is empty or not. This may be 1974 // used to include empty fields in Patch requests. 1975 ForceSendFields []string `json:"-"` 1976 1977 // NullFields is a list of field names (e.g. "Cardinality") to include 1978 // in API requests with the JSON null value. By default, fields with 1979 // empty values are omitted from API requests. However, any field with 1980 // an empty value appearing in NullFields will be sent to the server as 1981 // null. It is an error if a field in this list has a non-empty value. 1982 // This may be used to include null fields in Patch requests. 1983 NullFields []string `json:"-"` 1984} 1985 1986func (s *Field) MarshalJSON() ([]byte, error) { 1987 type NoMethod Field 1988 raw := NoMethod(*s) 1989 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1990} 1991 1992// GoogleCloudServicenetworkingV1ConsumerConfigReservedRange: Allocated 1993// IP address ranges for this private service access connection. 1994type GoogleCloudServicenetworkingV1ConsumerConfigReservedRange struct { 1995 // Address: The starting address of the reserved range. The address must 1996 // be a valid IPv4 address in the x.x.x.x format. This value combined 1997 // with the IP prefix length is the CIDR range for the reserved range. 1998 Address string `json:"address,omitempty"` 1999 2000 // IpPrefixLength: The prefix length of the reserved range. 2001 IpPrefixLength int64 `json:"ipPrefixLength,omitempty"` 2002 2003 // Name: The name of the reserved range. 2004 Name string `json:"name,omitempty"` 2005 2006 // ForceSendFields is a list of field names (e.g. "Address") to 2007 // unconditionally include in API requests. By default, fields with 2008 // empty values are omitted from API requests. However, any non-pointer, 2009 // non-interface field appearing in ForceSendFields will be sent to the 2010 // server regardless of whether the field is empty or not. This may be 2011 // used to include empty fields in Patch requests. 2012 ForceSendFields []string `json:"-"` 2013 2014 // NullFields is a list of field names (e.g. "Address") to include in 2015 // API requests with the JSON null value. By default, fields with empty 2016 // values are omitted from API requests. However, any field with an 2017 // empty value appearing in NullFields will be sent to the server as 2018 // null. It is an error if a field in this list has a non-empty value. 2019 // This may be used to include null fields in Patch requests. 2020 NullFields []string `json:"-"` 2021} 2022 2023func (s *GoogleCloudServicenetworkingV1ConsumerConfigReservedRange) MarshalJSON() ([]byte, error) { 2024 type NoMethod GoogleCloudServicenetworkingV1ConsumerConfigReservedRange 2025 raw := NoMethod(*s) 2026 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2027} 2028 2029// GoogleCloudServicenetworkingV1betaConnection: Represents a private 2030// connection resource. A private connection is implemented as a VPC 2031// Network Peering connection between a service producer's VPC network 2032// and a service consumer's VPC network. 2033type GoogleCloudServicenetworkingV1betaConnection struct { 2034 // Network: The name of service consumer's VPC network that's connected 2035 // with service producer network, in the following format: 2036 // `projects/{project}/global/networks/{network}`. `{project}` is a 2037 // project number, such as in `12345` that includes the VPC service 2038 // consumer's VPC network. `{network}` is the name of the service 2039 // consumer's VPC network. 2040 Network string `json:"network,omitempty"` 2041 2042 // Peering: Output only. The name of the VPC Network Peering connection 2043 // that was created by the service producer. 2044 Peering string `json:"peering,omitempty"` 2045 2046 // ReservedPeeringRanges: The name of one or more allocated IP address 2047 // ranges for this service producer of type `PEERING`. Note that 2048 // invoking this method with a different range when connection is 2049 // already established will not modify already provisioned service 2050 // producer subnetworks. 2051 ReservedPeeringRanges []string `json:"reservedPeeringRanges,omitempty"` 2052 2053 // Service: Output only. The name of the peering service that's 2054 // associated with this connection, in the following format: 2055 // `services/{service name}`. 2056 Service string `json:"service,omitempty"` 2057 2058 // ForceSendFields is a list of field names (e.g. "Network") to 2059 // unconditionally include in API requests. By default, fields with 2060 // empty values are omitted from API requests. However, any non-pointer, 2061 // non-interface field appearing in ForceSendFields will be sent to the 2062 // server regardless of whether the field is empty or not. This may be 2063 // used to include empty fields in Patch requests. 2064 ForceSendFields []string `json:"-"` 2065 2066 // NullFields is a list of field names (e.g. "Network") to include in 2067 // API requests with the JSON null value. By default, fields with empty 2068 // values are omitted from API requests. However, any field with an 2069 // empty value appearing in NullFields will be sent to the server as 2070 // null. It is an error if a field in this list has a non-empty value. 2071 // This may be used to include null fields in Patch requests. 2072 NullFields []string `json:"-"` 2073} 2074 2075func (s *GoogleCloudServicenetworkingV1betaConnection) MarshalJSON() ([]byte, error) { 2076 type NoMethod GoogleCloudServicenetworkingV1betaConnection 2077 raw := NoMethod(*s) 2078 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2079} 2080 2081// GoogleCloudServicenetworkingV1betaSubnetwork: Represents a subnet 2082// that was created or discovered by a private access management 2083// service. 2084type GoogleCloudServicenetworkingV1betaSubnetwork struct { 2085 // IpCidrRange: Subnetwork CIDR range in `10.x.x.x/y` format. 2086 IpCidrRange string `json:"ipCidrRange,omitempty"` 2087 2088 // Name: Subnetwork name. See https://cloud.google.com/compute/docs/vpc/ 2089 Name string `json:"name,omitempty"` 2090 2091 // Network: In the Shared VPC host project, the VPC network that's 2092 // peered with the consumer network. For example: 2093 // `projects/1234321/global/networks/host-network` 2094 Network string `json:"network,omitempty"` 2095 2096 // OutsideAllocation: This is a discovered subnet that is not within the 2097 // current consumer allocated ranges. 2098 OutsideAllocation bool `json:"outsideAllocation,omitempty"` 2099 2100 // ForceSendFields is a list of field names (e.g. "IpCidrRange") to 2101 // unconditionally include in API requests. By default, fields with 2102 // empty values are omitted from API requests. However, any non-pointer, 2103 // non-interface field appearing in ForceSendFields will be sent to the 2104 // server regardless of whether the field is empty or not. This may be 2105 // used to include empty fields in Patch requests. 2106 ForceSendFields []string `json:"-"` 2107 2108 // NullFields is a list of field names (e.g. "IpCidrRange") to include 2109 // in API requests with the JSON null value. By default, fields with 2110 // empty values are omitted from API requests. However, any field with 2111 // an empty value appearing in NullFields will be sent to the server as 2112 // null. It is an error if a field in this list has a non-empty value. 2113 // This may be used to include null fields in Patch requests. 2114 NullFields []string `json:"-"` 2115} 2116 2117func (s *GoogleCloudServicenetworkingV1betaSubnetwork) MarshalJSON() ([]byte, error) { 2118 type NoMethod GoogleCloudServicenetworkingV1betaSubnetwork 2119 raw := NoMethod(*s) 2120 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2121} 2122 2123// Http: Defines the HTTP configuration for an API service. It contains 2124// a list of HttpRule, each specifying the mapping of an RPC method to 2125// one or more HTTP REST API methods. 2126type Http struct { 2127 // FullyDecodeReservedExpansion: When set to true, URL path parameters 2128 // will be fully URI-decoded except in cases of single segment matches 2129 // in reserved expansion, where "%2F" will be left encoded. The default 2130 // behavior is to not decode RFC 6570 reserved characters in multi 2131 // segment matches. 2132 FullyDecodeReservedExpansion bool `json:"fullyDecodeReservedExpansion,omitempty"` 2133 2134 // Rules: A list of HTTP configuration rules that apply to individual 2135 // API methods. **NOTE:** All service configuration rules follow "last 2136 // one wins" order. 2137 Rules []*HttpRule `json:"rules,omitempty"` 2138 2139 // ForceSendFields is a list of field names (e.g. 2140 // "FullyDecodeReservedExpansion") to unconditionally include in API 2141 // requests. By default, fields with empty values are omitted from API 2142 // requests. However, any non-pointer, non-interface field appearing in 2143 // ForceSendFields will be sent to the server regardless of whether the 2144 // field is empty or not. This may be used to include empty fields in 2145 // Patch requests. 2146 ForceSendFields []string `json:"-"` 2147 2148 // NullFields is a list of field names (e.g. 2149 // "FullyDecodeReservedExpansion") to include in API requests with the 2150 // JSON null value. By default, fields with empty values are omitted 2151 // from API requests. However, any field with an empty value appearing 2152 // in NullFields will be sent to the server as null. It is an error if a 2153 // field in this list has a non-empty value. This may be used to include 2154 // null fields in Patch requests. 2155 NullFields []string `json:"-"` 2156} 2157 2158func (s *Http) MarshalJSON() ([]byte, error) { 2159 type NoMethod Http 2160 raw := NoMethod(*s) 2161 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2162} 2163 2164// HttpRule: # gRPC Transcoding gRPC Transcoding is a feature for 2165// mapping between a gRPC method and one or more HTTP REST endpoints. It 2166// allows developers to build a single API service that supports both 2167// gRPC APIs and REST APIs. Many systems, including Google APIs 2168// (https://github.com/googleapis/googleapis), Cloud Endpoints 2169// (https://cloud.google.com/endpoints), gRPC Gateway 2170// (https://github.com/grpc-ecosystem/grpc-gateway), and Envoy 2171// (https://github.com/envoyproxy/envoy) proxy support this feature and 2172// use it for large scale production services. `HttpRule` defines the 2173// schema of the gRPC/REST mapping. The mapping specifies how different 2174// portions of the gRPC request message are mapped to the URL path, URL 2175// query parameters, and HTTP request body. It also controls how the 2176// gRPC response message is mapped to the HTTP response body. `HttpRule` 2177// is typically specified as an `google.api.http` annotation on the gRPC 2178// method. Each mapping specifies a URL path template and an HTTP 2179// method. The path template may refer to one or more fields in the gRPC 2180// request message, as long as each field is a non-repeated field with a 2181// primitive (non-message) type. The path template controls how fields 2182// of the request message are mapped to the URL path. Example: service 2183// Messaging { rpc GetMessage(GetMessageRequest) returns (Message) { 2184// option (google.api.http) = { get: "/v1/{name=messages/*}" }; } } 2185// message GetMessageRequest { string name = 1; // Mapped to URL path. } 2186// message Message { string text = 1; // The resource content. } This 2187// enables an HTTP REST to gRPC mapping as below: HTTP | gRPC 2188// -----|----- `GET /v1/messages/123456` | `GetMessage(name: 2189// "messages/123456")` Any fields in the request message which are not 2190// bound by the path template automatically become HTTP query parameters 2191// if there is no HTTP request body. For example: service Messaging { 2192// rpc GetMessage(GetMessageRequest) returns (Message) { option 2193// (google.api.http) = { get:"/v1/messages/{message_id}" }; } } message 2194// GetMessageRequest { message SubMessage { string subfield = 1; } 2195// string message_id = 1; // Mapped to URL path. int64 revision = 2; // 2196// Mapped to URL query parameter `revision`. SubMessage sub = 3; // 2197// Mapped to URL query parameter `sub.subfield`. } This enables a HTTP 2198// JSON to RPC mapping as below: HTTP | gRPC -----|----- `GET 2199// /v1/messages/123456?revision=2&sub.subfield=foo` | 2200// `GetMessage(message_id: "123456" revision: 2 sub: 2201// SubMessage(subfield: "foo"))` Note that fields which are mapped to 2202// URL query parameters must have a primitive type or a repeated 2203// primitive type or a non-repeated message type. In the case of a 2204// repeated type, the parameter can be repeated in the URL as 2205// `...?param=A¶m=B`. In the case of a message type, each field of 2206// the message is mapped to a separate parameter, such as 2207// `...?foo.a=A&foo.b=B&foo.c=C`. For HTTP methods that allow a request 2208// body, the `body` field specifies the mapping. Consider a REST update 2209// method on the message resource collection: service Messaging { rpc 2210// UpdateMessage(UpdateMessageRequest) returns (Message) { option 2211// (google.api.http) = { patch: "/v1/messages/{message_id}" body: 2212// "message" }; } } message UpdateMessageRequest { string message_id = 2213// 1; // mapped to the URL Message message = 2; // mapped to the body } 2214// The following HTTP JSON to RPC mapping is enabled, where the 2215// representation of the JSON in the request body is determined by 2216// protos JSON encoding: HTTP | gRPC -----|----- `PATCH 2217// /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: 2218// "123456" message { text: "Hi!" })` The special name `*` can be used 2219// in the body mapping to define that every field not bound by the path 2220// template should be mapped to the request body. This enables the 2221// following alternative definition of the update method: service 2222// Messaging { rpc UpdateMessage(Message) returns (Message) { option 2223// (google.api.http) = { patch: "/v1/messages/{message_id}" body: "*" }; 2224// } } message Message { string message_id = 1; string text = 2; } The 2225// following HTTP JSON to RPC mapping is enabled: HTTP | gRPC 2226// -----|----- `PATCH /v1/messages/123456 { "text": "Hi!" }` | 2227// `UpdateMessage(message_id: "123456" text: "Hi!")` Note that when 2228// using `*` in the body mapping, it is not possible to have HTTP 2229// parameters, as all fields not bound by the path end in the body. This 2230// makes this option more rarely used in practice when defining REST 2231// APIs. The common usage of `*` is in custom methods which don't use 2232// the URL at all for transferring data. It is possible to define 2233// multiple HTTP methods for one RPC by using the `additional_bindings` 2234// option. Example: service Messaging { rpc 2235// GetMessage(GetMessageRequest) returns (Message) { option 2236// (google.api.http) = { get: "/v1/messages/{message_id}" 2237// additional_bindings { get: 2238// "/v1/users/{user_id}/messages/{message_id}" } }; } } message 2239// GetMessageRequest { string message_id = 1; string user_id = 2; } This 2240// enables the following two alternative HTTP JSON to RPC mappings: HTTP 2241// | gRPC -----|----- `GET /v1/messages/123456` | 2242// `GetMessage(message_id: "123456")` `GET /v1/users/me/messages/123456` 2243// | `GetMessage(user_id: "me" message_id: "123456")` ## Rules for HTTP 2244// mapping 1. Leaf request fields (recursive expansion nested messages 2245// in the request message) are classified into three categories: - 2246// Fields referred by the path template. They are passed via the URL 2247// path. - Fields referred by the HttpRule.body. They are passed via the 2248// HTTP request body. - All other fields are passed via the URL query 2249// parameters, and the parameter name is the field path in the request 2250// message. A repeated field can be represented as multiple query 2251// parameters under the same name. 2. If HttpRule.body is "*", there is 2252// no URL query parameter, all fields are passed via URL path and HTTP 2253// request body. 3. If HttpRule.body is omitted, there is no HTTP 2254// request body, all fields are passed via URL path and URL query 2255// parameters. ### Path template syntax Template = "/" Segments [ Verb ] 2256// ; Segments = Segment { "/" Segment } ; Segment = "*" | "**" | LITERAL 2257// | Variable ; Variable = "{" FieldPath [ "=" Segments ] "}" ; 2258// FieldPath = IDENT { "." IDENT } ; Verb = ":" LITERAL ; The syntax `*` 2259// matches a single URL path segment. The syntax `**` matches zero or 2260// more URL path segments, which must be the last part of the URL path 2261// except the `Verb`. The syntax `Variable` matches part of the URL path 2262// as specified by its template. A variable template must not contain 2263// other variables. If a variable matches a single path segment, its 2264// template may be omitted, e.g. `{var}` is equivalent to `{var=*}`. The 2265// syntax `LITERAL` matches literal text in the URL path. If the 2266// `LITERAL` contains any reserved character, such characters should be 2267// percent-encoded before the matching. If a variable contains exactly 2268// one path segment, such as "{var}" or "{var=*}", when such a 2269// variable is expanded into a URL path on the client side, all 2270// characters except `[-_.~0-9a-zA-Z]` are percent-encoded. The server 2271// side does the reverse decoding. Such variables show up in the 2272// Discovery Document 2273// (https://developers.google.com/discovery/v1/reference/apis) as 2274// `{var}`. If a variable contains multiple path segments, such as 2275// "{var=foo/*}" or "{var=**}", when such a variable is expanded 2276// into a URL path on the client side, all characters except 2277// `[-_.~/0-9a-zA-Z]` are percent-encoded. The server side does the 2278// reverse decoding, except "%2F" and "%2f" are left unchanged. Such 2279// variables show up in the Discovery Document 2280// (https://developers.google.com/discovery/v1/reference/apis) as 2281// `{+var}`. ## Using gRPC API Service Configuration gRPC API Service 2282// Configuration (service config) is a configuration language for 2283// configuring a gRPC service to become a user-facing product. The 2284// service config is simply the YAML representation of the 2285// `google.api.Service` proto message. As an alternative to annotating 2286// your proto file, you can configure gRPC transcoding in your service 2287// config YAML files. You do this by specifying a `HttpRule` that maps 2288// the gRPC method to a REST endpoint, achieving the same effect as the 2289// proto annotation. This can be particularly useful if you have a proto 2290// that is reused in multiple services. Note that any transcoding 2291// specified in the service config will override any matching 2292// transcoding configuration in the proto. Example: http: rules: # 2293// Selects a gRPC method and applies HttpRule to it. - selector: 2294// example.v1.Messaging.GetMessage get: 2295// /v1/messages/{message_id}/{sub.subfield} ## Special notes When gRPC 2296// Transcoding is used to map a gRPC to JSON REST endpoints, the proto 2297// to JSON conversion must follow the proto3 specification 2298// (https://developers.google.com/protocol-buffers/docs/proto3#json). 2299// While the single segment variable follows the semantics of RFC 6570 2300// (https://tools.ietf.org/html/rfc6570) Section 3.2.2 Simple String 2301// Expansion, the multi segment variable **does not** follow RFC 6570 2302// Section 3.2.3 Reserved Expansion. The reason is that the Reserved 2303// Expansion does not expand special characters like `?` and `#`, which 2304// would lead to invalid URLs. As the result, gRPC Transcoding uses a 2305// custom encoding for multi segment variables. The path variables 2306// **must not** refer to any repeated or mapped field, because client 2307// libraries are not capable of handling such variable expansion. The 2308// path variables **must not** capture the leading "/" character. The 2309// reason is that the most common use case "{var}" does not capture the 2310// leading "/" character. For consistency, all path variables must share 2311// the same behavior. Repeated message fields must not be mapped to URL 2312// query parameters, because no client library can support such 2313// complicated mapping. If an API needs to use a JSON array for request 2314// or response body, it can map the request or response body to a 2315// repeated field. However, some gRPC Transcoding implementations may 2316// not support this feature. 2317type HttpRule struct { 2318 // AdditionalBindings: Additional HTTP bindings for the selector. Nested 2319 // bindings must not contain an `additional_bindings` field themselves 2320 // (that is, the nesting may only be one level deep). 2321 AdditionalBindings []*HttpRule `json:"additionalBindings,omitempty"` 2322 2323 // Body: The name of the request field whose value is mapped to the HTTP 2324 // request body, or `*` for mapping all request fields not captured by 2325 // the path pattern to the HTTP body, or omitted for not having any HTTP 2326 // request body. NOTE: the referred field must be present at the 2327 // top-level of the request message type. 2328 Body string `json:"body,omitempty"` 2329 2330 // Custom: The custom pattern is used for specifying an HTTP method that 2331 // is not included in the `pattern` field, such as HEAD, or "*" to leave 2332 // the HTTP method unspecified for this rule. The wild-card rule is 2333 // useful for services that provide content to Web (HTML) clients. 2334 Custom *CustomHttpPattern `json:"custom,omitempty"` 2335 2336 // Delete: Maps to HTTP DELETE. Used for deleting a resource. 2337 Delete string `json:"delete,omitempty"` 2338 2339 // Get: Maps to HTTP GET. Used for listing and getting information about 2340 // resources. 2341 Get string `json:"get,omitempty"` 2342 2343 // Patch: Maps to HTTP PATCH. Used for updating a resource. 2344 Patch string `json:"patch,omitempty"` 2345 2346 // Post: Maps to HTTP POST. Used for creating a resource or performing 2347 // an action. 2348 Post string `json:"post,omitempty"` 2349 2350 // Put: Maps to HTTP PUT. Used for replacing a resource. 2351 Put string `json:"put,omitempty"` 2352 2353 // ResponseBody: Optional. The name of the response field whose value is 2354 // mapped to the HTTP response body. When omitted, the entire response 2355 // message will be used as the HTTP response body. NOTE: The referred 2356 // field must be present at the top-level of the response message type. 2357 ResponseBody string `json:"responseBody,omitempty"` 2358 2359 // Selector: Selects a method to which this rule applies. Refer to 2360 // selector for syntax details. 2361 Selector string `json:"selector,omitempty"` 2362 2363 // ForceSendFields is a list of field names (e.g. "AdditionalBindings") 2364 // to unconditionally include in API requests. By default, fields with 2365 // empty values are omitted from API requests. However, any non-pointer, 2366 // non-interface field appearing in ForceSendFields will be sent to the 2367 // server regardless of whether the field is empty or not. This may be 2368 // used to include empty fields in Patch requests. 2369 ForceSendFields []string `json:"-"` 2370 2371 // NullFields is a list of field names (e.g. "AdditionalBindings") to 2372 // include in API requests with the JSON null value. By default, fields 2373 // with empty values are omitted from API requests. However, any field 2374 // with an empty value appearing in NullFields will be sent to the 2375 // server as null. It is an error if a field in this list has a 2376 // non-empty value. This may be used to include null fields in Patch 2377 // requests. 2378 NullFields []string `json:"-"` 2379} 2380 2381func (s *HttpRule) MarshalJSON() ([]byte, error) { 2382 type NoMethod HttpRule 2383 raw := NoMethod(*s) 2384 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2385} 2386 2387// JwtLocation: Specifies a location to extract JWT from an API request. 2388type JwtLocation struct { 2389 // Header: Specifies HTTP header name to extract JWT token. 2390 Header string `json:"header,omitempty"` 2391 2392 // Query: Specifies URL query parameter name to extract JWT token. 2393 Query string `json:"query,omitempty"` 2394 2395 // ValuePrefix: The value prefix. The value format is 2396 // "value_prefix{token}" Only applies to "in" header type. Must be empty 2397 // for "in" query type. If not empty, the header value has to match 2398 // (case sensitive) this prefix. If not matched, JWT will not be 2399 // extracted. If matched, JWT will be extracted after the prefix is 2400 // removed. For example, for "Authorization: Bearer {JWT}", 2401 // value_prefix="Bearer " with a space at the end. 2402 ValuePrefix string `json:"valuePrefix,omitempty"` 2403 2404 // ForceSendFields is a list of field names (e.g. "Header") to 2405 // unconditionally include in API requests. By default, fields with 2406 // empty values are omitted from API requests. However, any non-pointer, 2407 // non-interface field appearing in ForceSendFields will be sent to the 2408 // server regardless of whether the field is empty or not. This may be 2409 // used to include empty fields in Patch requests. 2410 ForceSendFields []string `json:"-"` 2411 2412 // NullFields is a list of field names (e.g. "Header") to include in API 2413 // requests with the JSON null value. By default, fields with empty 2414 // values are omitted from API requests. However, any field with an 2415 // empty value appearing in NullFields will be sent to the server as 2416 // null. It is an error if a field in this list has a non-empty value. 2417 // This may be used to include null fields in Patch requests. 2418 NullFields []string `json:"-"` 2419} 2420 2421func (s *JwtLocation) MarshalJSON() ([]byte, error) { 2422 type NoMethod JwtLocation 2423 raw := NoMethod(*s) 2424 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2425} 2426 2427// LabelDescriptor: A description of a label. 2428type LabelDescriptor struct { 2429 // Description: A human-readable description for the label. 2430 Description string `json:"description,omitempty"` 2431 2432 // Key: The label key. 2433 Key string `json:"key,omitempty"` 2434 2435 // ValueType: The type of data that can be assigned to the label. 2436 // 2437 // Possible values: 2438 // "STRING" - A variable-length string. This is the default. 2439 // "BOOL" - Boolean; true or false. 2440 // "INT64" - A 64-bit signed integer. 2441 ValueType string `json:"valueType,omitempty"` 2442 2443 // ForceSendFields is a list of field names (e.g. "Description") to 2444 // unconditionally include in API requests. By default, fields with 2445 // empty values are omitted from API requests. However, any non-pointer, 2446 // non-interface field appearing in ForceSendFields will be sent to the 2447 // server regardless of whether the field is empty or not. This may be 2448 // used to include empty fields in Patch requests. 2449 ForceSendFields []string `json:"-"` 2450 2451 // NullFields is a list of field names (e.g. "Description") to include 2452 // in API requests with the JSON null value. By default, fields with 2453 // empty values are omitted from API requests. However, any field with 2454 // an empty value appearing in NullFields will be sent to the server as 2455 // null. It is an error if a field in this list has a non-empty value. 2456 // This may be used to include null fields in Patch requests. 2457 NullFields []string `json:"-"` 2458} 2459 2460func (s *LabelDescriptor) MarshalJSON() ([]byte, error) { 2461 type NoMethod LabelDescriptor 2462 raw := NoMethod(*s) 2463 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2464} 2465 2466// ListConnectionsResponse: ListConnectionsResponse is the response to 2467// list peering states for the given service and consumer project. 2468type ListConnectionsResponse struct { 2469 // Connections: The list of Connections. 2470 Connections []*Connection `json:"connections,omitempty"` 2471 2472 // ServerResponse contains the HTTP response code and headers from the 2473 // server. 2474 googleapi.ServerResponse `json:"-"` 2475 2476 // ForceSendFields is a list of field names (e.g. "Connections") to 2477 // unconditionally include in API requests. By default, fields with 2478 // empty values are omitted from API requests. However, any non-pointer, 2479 // non-interface field appearing in ForceSendFields will be sent to the 2480 // server regardless of whether the field is empty or not. This may be 2481 // used to include empty fields in Patch requests. 2482 ForceSendFields []string `json:"-"` 2483 2484 // NullFields is a list of field names (e.g. "Connections") to include 2485 // in API requests with the JSON null value. By default, fields with 2486 // empty values are omitted from API requests. However, any field with 2487 // an empty value appearing in NullFields will be sent to the server as 2488 // null. It is an error if a field in this list has a non-empty value. 2489 // This may be used to include null fields in Patch requests. 2490 NullFields []string `json:"-"` 2491} 2492 2493func (s *ListConnectionsResponse) MarshalJSON() ([]byte, error) { 2494 type NoMethod ListConnectionsResponse 2495 raw := NoMethod(*s) 2496 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2497} 2498 2499// ListOperationsResponse: The response message for 2500// Operations.ListOperations. 2501type ListOperationsResponse struct { 2502 // NextPageToken: The standard List next-page token. 2503 NextPageToken string `json:"nextPageToken,omitempty"` 2504 2505 // Operations: A list of operations that matches the specified filter in 2506 // the request. 2507 Operations []*Operation `json:"operations,omitempty"` 2508 2509 // ServerResponse contains the HTTP response code and headers from the 2510 // server. 2511 googleapi.ServerResponse `json:"-"` 2512 2513 // ForceSendFields is a list of field names (e.g. "NextPageToken") to 2514 // unconditionally include in API requests. By default, fields with 2515 // empty values are omitted from API requests. However, any non-pointer, 2516 // non-interface field appearing in ForceSendFields will be sent to the 2517 // server regardless of whether the field is empty or not. This may be 2518 // used to include empty fields in Patch requests. 2519 ForceSendFields []string `json:"-"` 2520 2521 // NullFields is a list of field names (e.g. "NextPageToken") to include 2522 // in API requests with the JSON null value. By default, fields with 2523 // empty values are omitted from API requests. However, any field with 2524 // an empty value appearing in NullFields will be sent to the server as 2525 // null. It is an error if a field in this list has a non-empty value. 2526 // This may be used to include null fields in Patch requests. 2527 NullFields []string `json:"-"` 2528} 2529 2530func (s *ListOperationsResponse) MarshalJSON() ([]byte, error) { 2531 type NoMethod ListOperationsResponse 2532 raw := NoMethod(*s) 2533 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2534} 2535 2536// ListPeeredDnsDomainsResponse: Response to list peered DNS domains for 2537// a given connection. 2538type ListPeeredDnsDomainsResponse struct { 2539 // PeeredDnsDomains: The list of peered DNS domains. 2540 PeeredDnsDomains []*PeeredDnsDomain `json:"peeredDnsDomains,omitempty"` 2541 2542 // ServerResponse contains the HTTP response code and headers from the 2543 // server. 2544 googleapi.ServerResponse `json:"-"` 2545 2546 // ForceSendFields is a list of field names (e.g. "PeeredDnsDomains") to 2547 // unconditionally include in API requests. By default, fields with 2548 // empty values are omitted from API requests. However, any non-pointer, 2549 // non-interface field appearing in ForceSendFields will be sent to the 2550 // server regardless of whether the field is empty or not. This may be 2551 // used to include empty fields in Patch requests. 2552 ForceSendFields []string `json:"-"` 2553 2554 // NullFields is a list of field names (e.g. "PeeredDnsDomains") to 2555 // include in API requests with the JSON null value. By default, fields 2556 // with empty values are omitted from API requests. However, any field 2557 // with an empty value appearing in NullFields will be sent to the 2558 // server as null. It is an error if a field in this list has a 2559 // non-empty value. This may be used to include null fields in Patch 2560 // requests. 2561 NullFields []string `json:"-"` 2562} 2563 2564func (s *ListPeeredDnsDomainsResponse) MarshalJSON() ([]byte, error) { 2565 type NoMethod ListPeeredDnsDomainsResponse 2566 raw := NoMethod(*s) 2567 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2568} 2569 2570// LogDescriptor: A description of a log type. Example in YAML format: - 2571// name: library.googleapis.com/activity_history description: The 2572// history of borrowing and returning library items. display_name: 2573// Activity labels: - key: /customer_id description: Identifier of a 2574// library customer 2575type LogDescriptor struct { 2576 // Description: A human-readable description of this log. This 2577 // information appears in the documentation and can contain details. 2578 Description string `json:"description,omitempty"` 2579 2580 // DisplayName: The human-readable name for this log. This information 2581 // appears on the user interface and should be concise. 2582 DisplayName string `json:"displayName,omitempty"` 2583 2584 // Labels: The set of labels that are available to describe a specific 2585 // log entry. Runtime requests that contain labels not specified here 2586 // are considered invalid. 2587 Labels []*LabelDescriptor `json:"labels,omitempty"` 2588 2589 // Name: The name of the log. It must be less than 512 characters long 2590 // and can include the following characters: upper- and lower-case 2591 // alphanumeric characters [A-Za-z0-9], and punctuation characters 2592 // including slash, underscore, hyphen, period [/_-.]. 2593 Name string `json:"name,omitempty"` 2594 2595 // ForceSendFields is a list of field names (e.g. "Description") to 2596 // unconditionally include in API requests. By default, fields with 2597 // empty values are omitted from API requests. However, any non-pointer, 2598 // non-interface field appearing in ForceSendFields will be sent to the 2599 // server regardless of whether the field is empty or not. This may be 2600 // used to include empty fields in Patch requests. 2601 ForceSendFields []string `json:"-"` 2602 2603 // NullFields is a list of field names (e.g. "Description") to include 2604 // in API requests with the JSON null value. By default, fields with 2605 // empty values are omitted from API requests. However, any field with 2606 // an empty value appearing in NullFields will be sent to the server as 2607 // null. It is an error if a field in this list has a non-empty value. 2608 // This may be used to include null fields in Patch requests. 2609 NullFields []string `json:"-"` 2610} 2611 2612func (s *LogDescriptor) MarshalJSON() ([]byte, error) { 2613 type NoMethod LogDescriptor 2614 raw := NoMethod(*s) 2615 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2616} 2617 2618// Logging: Logging configuration of the service. The following example 2619// shows how to configure logs to be sent to the producer and consumer 2620// projects. In the example, the `activity_history` log is sent to both 2621// the producer and consumer projects, whereas the `purchase_history` 2622// log is only sent to the producer project. monitored_resources: - 2623// type: library.googleapis.com/branch labels: - key: /city description: 2624// The city where the library branch is located in. - key: /name 2625// description: The name of the branch. logs: - name: activity_history 2626// labels: - key: /customer_id - name: purchase_history logging: 2627// producer_destinations: - monitored_resource: 2628// library.googleapis.com/branch logs: - activity_history - 2629// purchase_history consumer_destinations: - monitored_resource: 2630// library.googleapis.com/branch logs: - activity_history 2631type Logging struct { 2632 // ConsumerDestinations: Logging configurations for sending logs to the 2633 // consumer project. There can be multiple consumer destinations, each 2634 // one must have a different monitored resource type. A log can be used 2635 // in at most one consumer destination. 2636 ConsumerDestinations []*LoggingDestination `json:"consumerDestinations,omitempty"` 2637 2638 // ProducerDestinations: Logging configurations for sending logs to the 2639 // producer project. There can be multiple producer destinations, each 2640 // one must have a different monitored resource type. A log can be used 2641 // in at most one producer destination. 2642 ProducerDestinations []*LoggingDestination `json:"producerDestinations,omitempty"` 2643 2644 // ForceSendFields is a list of field names (e.g. 2645 // "ConsumerDestinations") to unconditionally include in API requests. 2646 // By default, fields with empty values are omitted from API requests. 2647 // However, any non-pointer, non-interface field appearing in 2648 // ForceSendFields will be sent to the server regardless of whether the 2649 // field is empty or not. This may be used to include empty fields in 2650 // Patch requests. 2651 ForceSendFields []string `json:"-"` 2652 2653 // NullFields is a list of field names (e.g. "ConsumerDestinations") to 2654 // include in API requests with the JSON null value. By default, fields 2655 // with empty values are omitted from API requests. However, any field 2656 // with an empty value appearing in NullFields will be sent to the 2657 // server as null. It is an error if a field in this list has a 2658 // non-empty value. This may be used to include null fields in Patch 2659 // requests. 2660 NullFields []string `json:"-"` 2661} 2662 2663func (s *Logging) MarshalJSON() ([]byte, error) { 2664 type NoMethod Logging 2665 raw := NoMethod(*s) 2666 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2667} 2668 2669// LoggingDestination: Configuration of a specific logging destination 2670// (the producer project or the consumer project). 2671type LoggingDestination struct { 2672 // Logs: Names of the logs to be sent to this destination. Each name 2673 // must be defined in the Service.logs section. If the log name is not a 2674 // domain scoped name, it will be automatically prefixed with the 2675 // service name followed by "/". 2676 Logs []string `json:"logs,omitempty"` 2677 2678 // MonitoredResource: The monitored resource type. The type must be 2679 // defined in the Service.monitored_resources section. 2680 MonitoredResource string `json:"monitoredResource,omitempty"` 2681 2682 // ForceSendFields is a list of field names (e.g. "Logs") to 2683 // unconditionally include in API requests. By default, fields with 2684 // empty values are omitted from API requests. However, any non-pointer, 2685 // non-interface field appearing in ForceSendFields will be sent to the 2686 // server regardless of whether the field is empty or not. This may be 2687 // used to include empty fields in Patch requests. 2688 ForceSendFields []string `json:"-"` 2689 2690 // NullFields is a list of field names (e.g. "Logs") to include in API 2691 // requests with the JSON null value. By default, fields with empty 2692 // values are omitted from API requests. However, any field with an 2693 // empty value appearing in NullFields will be sent to the server as 2694 // null. It is an error if a field in this list has a non-empty value. 2695 // This may be used to include null fields in Patch requests. 2696 NullFields []string `json:"-"` 2697} 2698 2699func (s *LoggingDestination) MarshalJSON() ([]byte, error) { 2700 type NoMethod LoggingDestination 2701 raw := NoMethod(*s) 2702 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2703} 2704 2705// Method: Method represents a method of an API interface. 2706type Method struct { 2707 // Name: The simple name of this method. 2708 Name string `json:"name,omitempty"` 2709 2710 // Options: Any metadata attached to the method. 2711 Options []*Option `json:"options,omitempty"` 2712 2713 // RequestStreaming: If true, the request is streamed. 2714 RequestStreaming bool `json:"requestStreaming,omitempty"` 2715 2716 // RequestTypeUrl: A URL of the input message type. 2717 RequestTypeUrl string `json:"requestTypeUrl,omitempty"` 2718 2719 // ResponseStreaming: If true, the response is streamed. 2720 ResponseStreaming bool `json:"responseStreaming,omitempty"` 2721 2722 // ResponseTypeUrl: The URL of the output message type. 2723 ResponseTypeUrl string `json:"responseTypeUrl,omitempty"` 2724 2725 // Syntax: The source syntax of this method. 2726 // 2727 // Possible values: 2728 // "SYNTAX_PROTO2" - Syntax `proto2`. 2729 // "SYNTAX_PROTO3" - Syntax `proto3`. 2730 Syntax string `json:"syntax,omitempty"` 2731 2732 // ForceSendFields is a list of field names (e.g. "Name") to 2733 // unconditionally include in API requests. By default, fields with 2734 // empty values are omitted from API requests. However, any non-pointer, 2735 // non-interface field appearing in ForceSendFields will be sent to the 2736 // server regardless of whether the field is empty or not. This may be 2737 // used to include empty fields in Patch requests. 2738 ForceSendFields []string `json:"-"` 2739 2740 // NullFields is a list of field names (e.g. "Name") to include in API 2741 // requests with the JSON null value. By default, fields with empty 2742 // values are omitted from API requests. However, any field with an 2743 // empty value appearing in NullFields will be sent to the server as 2744 // null. It is an error if a field in this list has a non-empty value. 2745 // This may be used to include null fields in Patch requests. 2746 NullFields []string `json:"-"` 2747} 2748 2749func (s *Method) MarshalJSON() ([]byte, error) { 2750 type NoMethod Method 2751 raw := NoMethod(*s) 2752 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2753} 2754 2755// MetricDescriptor: Defines a metric type and its schema. Once a metric 2756// descriptor is created, deleting or altering it stops data collection 2757// and makes the metric type's existing data unusable. 2758type MetricDescriptor struct { 2759 // Description: A detailed description of the metric, which can be used 2760 // in documentation. 2761 Description string `json:"description,omitempty"` 2762 2763 // DisplayName: A concise name for the metric, which can be displayed in 2764 // user interfaces. Use sentence case without an ending period, for 2765 // example "Request count". This field is optional but it is recommended 2766 // to be set for any metrics associated with user-visible concepts, such 2767 // as Quota. 2768 DisplayName string `json:"displayName,omitempty"` 2769 2770 // Labels: The set of labels that can be used to describe a specific 2771 // instance of this metric type. For example, the 2772 // `appengine.googleapis.com/http/server/response_latencies` metric type 2773 // has a label for the HTTP response code, `response_code`, so you can 2774 // look at latencies for successful responses or just for responses that 2775 // failed. 2776 Labels []*LabelDescriptor `json:"labels,omitempty"` 2777 2778 // LaunchStage: Optional. The launch stage of the metric definition. 2779 // 2780 // Possible values: 2781 // "LAUNCH_STAGE_UNSPECIFIED" - Do not use this default value. 2782 // "UNIMPLEMENTED" - The feature is not yet implemented. Users can not 2783 // use it. 2784 // "PRELAUNCH" - Prelaunch features are hidden from users and are only 2785 // visible internally. 2786 // "EARLY_ACCESS" - Early Access features are limited to a closed 2787 // group of testers. To use these features, you must sign up in advance 2788 // and sign a Trusted Tester agreement (which includes confidentiality 2789 // provisions). These features may be unstable, changed in 2790 // backward-incompatible ways, and are not guaranteed to be released. 2791 // "ALPHA" - Alpha is a limited availability test for releases before 2792 // they are cleared for widespread use. By Alpha, all significant design 2793 // issues are resolved and we are in the process of verifying 2794 // functionality. Alpha customers need to apply for access, agree to 2795 // applicable terms, and have their projects allowlisted. Alpha releases 2796 // don’t have to be feature complete, no SLAs are provided, and there 2797 // are no technical support obligations, but they will be far enough 2798 // along that customers can actually use them in test environments or 2799 // for limited-use tests -- just like they would in normal production 2800 // cases. 2801 // "BETA" - Beta is the point at which we are ready to open a release 2802 // for any customer to use. There are no SLA or technical support 2803 // obligations in a Beta release. Products will be complete from a 2804 // feature perspective, but may have some open outstanding issues. Beta 2805 // releases are suitable for limited production use cases. 2806 // "GA" - GA features are open to all developers and are considered 2807 // stable and fully qualified for production use. 2808 // "DEPRECATED" - Deprecated features are scheduled to be shut down 2809 // and removed. For more information, see the “Deprecation Policy” 2810 // section of our [Terms of Service](https://cloud.google.com/terms/) 2811 // and the [Google Cloud Platform Subject to the Deprecation 2812 // Policy](https://cloud.google.com/terms/deprecation) documentation. 2813 LaunchStage string `json:"launchStage,omitempty"` 2814 2815 // Metadata: Optional. Metadata which can be used to guide usage of the 2816 // metric. 2817 Metadata *MetricDescriptorMetadata `json:"metadata,omitempty"` 2818 2819 // MetricKind: Whether the metric records instantaneous values, changes 2820 // to a value, etc. Some combinations of `metric_kind` and `value_type` 2821 // might not be supported. 2822 // 2823 // Possible values: 2824 // "METRIC_KIND_UNSPECIFIED" - Do not use this default value. 2825 // "GAUGE" - An instantaneous measurement of a value. 2826 // "DELTA" - The change in a value during a time interval. 2827 // "CUMULATIVE" - A value accumulated over a time interval. Cumulative 2828 // measurements in a time series should have the same start time and 2829 // increasing end times, until an event resets the cumulative value to 2830 // zero and sets a new start time for the following points. 2831 MetricKind string `json:"metricKind,omitempty"` 2832 2833 // MonitoredResourceTypes: Read-only. If present, then a time series, 2834 // which is identified partially by a metric type and a 2835 // MonitoredResourceDescriptor, that is associated with this metric type 2836 // can only be associated with one of the monitored resource types 2837 // listed here. 2838 MonitoredResourceTypes []string `json:"monitoredResourceTypes,omitempty"` 2839 2840 // Name: The resource name of the metric descriptor. 2841 Name string `json:"name,omitempty"` 2842 2843 // Type: The metric type, including its DNS name prefix. The type is not 2844 // URL-encoded. All user-defined metric types have the DNS name 2845 // `custom.googleapis.com` or `external.googleapis.com`. Metric types 2846 // should use a natural hierarchical grouping. For example: 2847 // "custom.googleapis.com/invoice/paid/amount" 2848 // "external.googleapis.com/prometheus/up" 2849 // "appengine.googleapis.com/http/server/response_latencies" 2850 Type string `json:"type,omitempty"` 2851 2852 // Unit: The units in which the metric value is reported. It is only 2853 // applicable if the `value_type` is `INT64`, `DOUBLE`, or 2854 // `DISTRIBUTION`. The `unit` defines the representation of the stored 2855 // metric values. Different systems might scale the values to be more 2856 // easily displayed (so a value of `0.02kBy` _might_ be displayed as 2857 // `20By`, and a value of `3523kBy` _might_ be displayed as `3.5MBy`). 2858 // However, if the `unit` is `kBy`, then the value of the metric is 2859 // always in thousands of bytes, no matter how it might be displayed. If 2860 // you want a custom metric to record the exact number of CPU-seconds 2861 // used by a job, you can create an `INT64 CUMULATIVE` metric whose 2862 // `unit` is `s{CPU}` (or equivalently `1s{CPU}` or just `s`). If the 2863 // job uses 12,005 CPU-seconds, then the value is written as `12005`. 2864 // Alternatively, if you want a custom metric to record data in a more 2865 // granular way, you can create a `DOUBLE CUMULATIVE` metric whose 2866 // `unit` is `ks{CPU}`, and then write the value `12.005` (which is 2867 // `12005/1000`), or use `Kis{CPU}` and write `11.723` (which is 2868 // `12005/1024`). The supported units are a subset of The Unified Code 2869 // for Units of Measure (https://unitsofmeasure.org/ucum.html) standard: 2870 // **Basic units (UNIT)** * `bit` bit * `By` byte * `s` second * `min` 2871 // minute * `h` hour * `d` day * `1` dimensionless **Prefixes (PREFIX)** 2872 // * `k` kilo (10^3) * `M` mega (10^6) * `G` giga (10^9) * `T` tera 2873 // (10^12) * `P` peta (10^15) * `E` exa (10^18) * `Z` zetta (10^21) * 2874 // `Y` yotta (10^24) * `m` milli (10^-3) * `u` micro (10^-6) * `n` nano 2875 // (10^-9) * `p` pico (10^-12) * `f` femto (10^-15) * `a` atto (10^-18) 2876 // * `z` zepto (10^-21) * `y` yocto (10^-24) * `Ki` kibi (2^10) * `Mi` 2877 // mebi (2^20) * `Gi` gibi (2^30) * `Ti` tebi (2^40) * `Pi` pebi (2^50) 2878 // **Grammar** The grammar also includes these connectors: * `/` 2879 // division or ratio (as an infix operator). For examples, `kBy/{email}` 2880 // or `MiBy/10ms` (although you should almost never have `/s` in a 2881 // metric `unit`; rates should always be computed at query time from the 2882 // underlying cumulative or delta value). * `.` multiplication or 2883 // composition (as an infix operator). For examples, `GBy.d` or 2884 // `k{watt}.h`. The grammar for a unit is as follows: Expression = 2885 // Component { "." Component } { "/" Component } ; Component = ( [ 2886 // PREFIX ] UNIT | "%" ) [ Annotation ] | Annotation | "1" ; Annotation 2887 // = "{" NAME "}" ; Notes: * `Annotation` is just a comment if it 2888 // follows a `UNIT`. If the annotation is used alone, then the unit is 2889 // equivalent to `1`. For examples, `{request}/s == 1/s`, 2890 // `By{transmitted}/s == By/s`. * `NAME` is a sequence of non-blank 2891 // printable ASCII characters not containing `{` or `}`. * `1` 2892 // represents a unitary dimensionless unit 2893 // (https://en.wikipedia.org/wiki/Dimensionless_quantity) of 1, such as 2894 // in `1/s`. It is typically used when none of the basic units are 2895 // appropriate. For example, "new users per day" can be represented as 2896 // `1/d` or `{new-users}/d` (and a metric value `5` would mean "5 new 2897 // users). Alternatively, "thousands of page views per day" would be 2898 // represented as `1000/d` or `k1/d` or `k{page_views}/d` (and a metric 2899 // value of `5.3` would mean "5300 page views per day"). * `%` 2900 // represents dimensionless value of 1/100, and annotates values giving 2901 // a percentage (so the metric values are typically in the range of 2902 // 0..100, and a metric value `3` means "3 percent"). * `10^2.%` 2903 // indicates a metric contains a ratio, typically in the range 0..1, 2904 // that will be multiplied by 100 and displayed as a percentage (so a 2905 // metric value `0.03` means "3 percent"). 2906 Unit string `json:"unit,omitempty"` 2907 2908 // ValueType: Whether the measurement is an integer, a floating-point 2909 // number, etc. Some combinations of `metric_kind` and `value_type` 2910 // might not be supported. 2911 // 2912 // Possible values: 2913 // "VALUE_TYPE_UNSPECIFIED" - Do not use this default value. 2914 // "BOOL" - The value is a boolean. This value type can be used only 2915 // if the metric kind is `GAUGE`. 2916 // "INT64" - The value is a signed 64-bit integer. 2917 // "DOUBLE" - The value is a double precision floating point number. 2918 // "STRING" - The value is a text string. This value type can be used 2919 // only if the metric kind is `GAUGE`. 2920 // "DISTRIBUTION" - The value is a `Distribution`. 2921 // "MONEY" - The value is money. 2922 ValueType string `json:"valueType,omitempty"` 2923 2924 // ForceSendFields is a list of field names (e.g. "Description") to 2925 // unconditionally include in API requests. By default, fields with 2926 // empty values are omitted from API requests. However, any non-pointer, 2927 // non-interface field appearing in ForceSendFields will be sent to the 2928 // server regardless of whether the field is empty or not. This may be 2929 // used to include empty fields in Patch requests. 2930 ForceSendFields []string `json:"-"` 2931 2932 // NullFields is a list of field names (e.g. "Description") to include 2933 // in API requests with the JSON null value. By default, fields with 2934 // empty values are omitted from API requests. However, any field with 2935 // an empty value appearing in NullFields will be sent to the server as 2936 // null. It is an error if a field in this list has a non-empty value. 2937 // This may be used to include null fields in Patch requests. 2938 NullFields []string `json:"-"` 2939} 2940 2941func (s *MetricDescriptor) MarshalJSON() ([]byte, error) { 2942 type NoMethod MetricDescriptor 2943 raw := NoMethod(*s) 2944 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2945} 2946 2947// MetricDescriptorMetadata: Additional annotations that can be used to 2948// guide the usage of a metric. 2949type MetricDescriptorMetadata struct { 2950 // IngestDelay: The delay of data points caused by ingestion. Data 2951 // points older than this age are guaranteed to be ingested and 2952 // available to be read, excluding data loss due to errors. 2953 IngestDelay string `json:"ingestDelay,omitempty"` 2954 2955 // LaunchStage: Deprecated. Must use the MetricDescriptor.launch_stage 2956 // instead. 2957 // 2958 // Possible values: 2959 // "LAUNCH_STAGE_UNSPECIFIED" - Do not use this default value. 2960 // "UNIMPLEMENTED" - The feature is not yet implemented. Users can not 2961 // use it. 2962 // "PRELAUNCH" - Prelaunch features are hidden from users and are only 2963 // visible internally. 2964 // "EARLY_ACCESS" - Early Access features are limited to a closed 2965 // group of testers. To use these features, you must sign up in advance 2966 // and sign a Trusted Tester agreement (which includes confidentiality 2967 // provisions). These features may be unstable, changed in 2968 // backward-incompatible ways, and are not guaranteed to be released. 2969 // "ALPHA" - Alpha is a limited availability test for releases before 2970 // they are cleared for widespread use. By Alpha, all significant design 2971 // issues are resolved and we are in the process of verifying 2972 // functionality. Alpha customers need to apply for access, agree to 2973 // applicable terms, and have their projects allowlisted. Alpha releases 2974 // don’t have to be feature complete, no SLAs are provided, and there 2975 // are no technical support obligations, but they will be far enough 2976 // along that customers can actually use them in test environments or 2977 // for limited-use tests -- just like they would in normal production 2978 // cases. 2979 // "BETA" - Beta is the point at which we are ready to open a release 2980 // for any customer to use. There are no SLA or technical support 2981 // obligations in a Beta release. Products will be complete from a 2982 // feature perspective, but may have some open outstanding issues. Beta 2983 // releases are suitable for limited production use cases. 2984 // "GA" - GA features are open to all developers and are considered 2985 // stable and fully qualified for production use. 2986 // "DEPRECATED" - Deprecated features are scheduled to be shut down 2987 // and removed. For more information, see the “Deprecation Policy” 2988 // section of our [Terms of Service](https://cloud.google.com/terms/) 2989 // and the [Google Cloud Platform Subject to the Deprecation 2990 // Policy](https://cloud.google.com/terms/deprecation) documentation. 2991 LaunchStage string `json:"launchStage,omitempty"` 2992 2993 // SamplePeriod: The sampling period of metric data points. For metrics 2994 // which are written periodically, consecutive data points are stored at 2995 // this time interval, excluding data loss due to errors. Metrics with a 2996 // higher granularity have a smaller sampling period. 2997 SamplePeriod string `json:"samplePeriod,omitempty"` 2998 2999 // ForceSendFields is a list of field names (e.g. "IngestDelay") to 3000 // unconditionally include in API requests. By default, fields with 3001 // empty values are omitted from API requests. However, any non-pointer, 3002 // non-interface field appearing in ForceSendFields will be sent to the 3003 // server regardless of whether the field is empty or not. This may be 3004 // used to include empty fields in Patch requests. 3005 ForceSendFields []string `json:"-"` 3006 3007 // NullFields is a list of field names (e.g. "IngestDelay") to include 3008 // in API requests with the JSON null value. By default, fields with 3009 // empty values are omitted from API requests. However, any field with 3010 // an empty value appearing in NullFields will be sent to the server as 3011 // null. It is an error if a field in this list has a non-empty value. 3012 // This may be used to include null fields in Patch requests. 3013 NullFields []string `json:"-"` 3014} 3015 3016func (s *MetricDescriptorMetadata) MarshalJSON() ([]byte, error) { 3017 type NoMethod MetricDescriptorMetadata 3018 raw := NoMethod(*s) 3019 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3020} 3021 3022// MetricRule: Bind API methods to metrics. Binding a method to a metric 3023// causes that metric's configured quota behaviors to apply to the 3024// method call. 3025type MetricRule struct { 3026 // MetricCosts: Metrics to update when the selected methods are called, 3027 // and the associated cost applied to each metric. The key of the map is 3028 // the metric name, and the values are the amount increased for the 3029 // metric against which the quota limits are defined. The value must not 3030 // be negative. 3031 MetricCosts map[string]string `json:"metricCosts,omitempty"` 3032 3033 // Selector: Selects the methods to which this rule applies. Refer to 3034 // selector for syntax details. 3035 Selector string `json:"selector,omitempty"` 3036 3037 // ForceSendFields is a list of field names (e.g. "MetricCosts") to 3038 // unconditionally include in API requests. By default, fields with 3039 // empty values are omitted from API requests. However, any non-pointer, 3040 // non-interface field appearing in ForceSendFields will be sent to the 3041 // server regardless of whether the field is empty or not. This may be 3042 // used to include empty fields in Patch requests. 3043 ForceSendFields []string `json:"-"` 3044 3045 // NullFields is a list of field names (e.g. "MetricCosts") to include 3046 // in API requests with the JSON null value. By default, fields with 3047 // empty values are omitted from API requests. However, any field with 3048 // an empty value appearing in NullFields will be sent to the server as 3049 // null. It is an error if a field in this list has a non-empty value. 3050 // This may be used to include null fields in Patch requests. 3051 NullFields []string `json:"-"` 3052} 3053 3054func (s *MetricRule) MarshalJSON() ([]byte, error) { 3055 type NoMethod MetricRule 3056 raw := NoMethod(*s) 3057 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3058} 3059 3060// Mixin: Declares an API Interface to be included in this interface. 3061// The including interface must redeclare all the methods from the 3062// included interface, but documentation and options are inherited as 3063// follows: - If after comment and whitespace stripping, the 3064// documentation string of the redeclared method is empty, it will be 3065// inherited from the original method. - Each annotation belonging to 3066// the service config (http, visibility) which is not set in the 3067// redeclared method will be inherited. - If an http annotation is 3068// inherited, the path pattern will be modified as follows. Any version 3069// prefix will be replaced by the version of the including interface 3070// plus the root path if specified. Example of a simple mixin: package 3071// google.acl.v1; service AccessControl { // Get the underlying ACL 3072// object. rpc GetAcl(GetAclRequest) returns (Acl) { option 3073// (google.api.http).get = "/v1/{resource=**}:getAcl"; } } package 3074// google.storage.v2; service Storage { // rpc GetAcl(GetAclRequest) 3075// returns (Acl); // Get a data record. rpc GetData(GetDataRequest) 3076// returns (Data) { option (google.api.http).get = "/v2/{resource=**}"; 3077// } } Example of a mixin configuration: apis: - name: 3078// google.storage.v2.Storage mixins: - name: google.acl.v1.AccessControl 3079// The mixin construct implies that all methods in `AccessControl` are 3080// also declared with same name and request/response types in `Storage`. 3081// A documentation generator or annotation processor will see the 3082// effective `Storage.GetAcl` method after inheriting documentation and 3083// annotations as follows: service Storage { // Get the underlying ACL 3084// object. rpc GetAcl(GetAclRequest) returns (Acl) { option 3085// (google.api.http).get = "/v2/{resource=**}:getAcl"; } ... } Note how 3086// the version in the path pattern changed from `v1` to `v2`. If the 3087// `root` field in the mixin is specified, it should be a relative path 3088// under which inherited HTTP paths are placed. Example: apis: - name: 3089// google.storage.v2.Storage mixins: - name: google.acl.v1.AccessControl 3090// root: acls This implies the following inherited HTTP annotation: 3091// service Storage { // Get the underlying ACL object. rpc 3092// GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = 3093// "/v2/acls/{resource=**}:getAcl"; } ... } 3094type Mixin struct { 3095 // Name: The fully qualified name of the interface which is included. 3096 Name string `json:"name,omitempty"` 3097 3098 // Root: If non-empty specifies a path under which inherited HTTP paths 3099 // are rooted. 3100 Root string `json:"root,omitempty"` 3101 3102 // ForceSendFields is a list of field names (e.g. "Name") to 3103 // unconditionally include in API requests. By default, fields with 3104 // empty values are omitted from API requests. However, any non-pointer, 3105 // non-interface field appearing in ForceSendFields will be sent to the 3106 // server regardless of whether the field is empty or not. This may be 3107 // used to include empty fields in Patch requests. 3108 ForceSendFields []string `json:"-"` 3109 3110 // NullFields is a list of field names (e.g. "Name") to include in API 3111 // requests with the JSON null value. By default, fields with empty 3112 // values are omitted from API requests. However, any field with an 3113 // empty value appearing in NullFields will be sent to the server as 3114 // null. It is an error if a field in this list has a non-empty value. 3115 // This may be used to include null fields in Patch requests. 3116 NullFields []string `json:"-"` 3117} 3118 3119func (s *Mixin) MarshalJSON() ([]byte, error) { 3120 type NoMethod Mixin 3121 raw := NoMethod(*s) 3122 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3123} 3124 3125// MonitoredResourceDescriptor: An object that describes the schema of a 3126// MonitoredResource object using a type name and a set of labels. For 3127// example, the monitored resource descriptor for Google Compute Engine 3128// VM instances has a type of "gce_instance" and specifies the use of 3129// the labels "instance_id" and "zone" to identify particular VM 3130// instances. Different APIs can support different monitored resource 3131// types. APIs generally provide a `list` method that returns the 3132// monitored resource descriptors used by the API. 3133type MonitoredResourceDescriptor struct { 3134 // Description: Optional. A detailed description of the monitored 3135 // resource type that might be used in documentation. 3136 Description string `json:"description,omitempty"` 3137 3138 // DisplayName: Optional. A concise name for the monitored resource type 3139 // that might be displayed in user interfaces. It should be a Title 3140 // Cased Noun Phrase, without any article or other determiners. For 3141 // example, "Google Cloud SQL Database". 3142 DisplayName string `json:"displayName,omitempty"` 3143 3144 // Labels: Required. A set of labels used to describe instances of this 3145 // monitored resource type. For example, an individual Google Cloud SQL 3146 // database is identified by values for the labels "database_id" and 3147 // "zone". 3148 Labels []*LabelDescriptor `json:"labels,omitempty"` 3149 3150 // LaunchStage: Optional. The launch stage of the monitored resource 3151 // definition. 3152 // 3153 // Possible values: 3154 // "LAUNCH_STAGE_UNSPECIFIED" - Do not use this default value. 3155 // "UNIMPLEMENTED" - The feature is not yet implemented. Users can not 3156 // use it. 3157 // "PRELAUNCH" - Prelaunch features are hidden from users and are only 3158 // visible internally. 3159 // "EARLY_ACCESS" - Early Access features are limited to a closed 3160 // group of testers. To use these features, you must sign up in advance 3161 // and sign a Trusted Tester agreement (which includes confidentiality 3162 // provisions). These features may be unstable, changed in 3163 // backward-incompatible ways, and are not guaranteed to be released. 3164 // "ALPHA" - Alpha is a limited availability test for releases before 3165 // they are cleared for widespread use. By Alpha, all significant design 3166 // issues are resolved and we are in the process of verifying 3167 // functionality. Alpha customers need to apply for access, agree to 3168 // applicable terms, and have their projects allowlisted. Alpha releases 3169 // don’t have to be feature complete, no SLAs are provided, and there 3170 // are no technical support obligations, but they will be far enough 3171 // along that customers can actually use them in test environments or 3172 // for limited-use tests -- just like they would in normal production 3173 // cases. 3174 // "BETA" - Beta is the point at which we are ready to open a release 3175 // for any customer to use. There are no SLA or technical support 3176 // obligations in a Beta release. Products will be complete from a 3177 // feature perspective, but may have some open outstanding issues. Beta 3178 // releases are suitable for limited production use cases. 3179 // "GA" - GA features are open to all developers and are considered 3180 // stable and fully qualified for production use. 3181 // "DEPRECATED" - Deprecated features are scheduled to be shut down 3182 // and removed. For more information, see the “Deprecation Policy” 3183 // section of our [Terms of Service](https://cloud.google.com/terms/) 3184 // and the [Google Cloud Platform Subject to the Deprecation 3185 // Policy](https://cloud.google.com/terms/deprecation) documentation. 3186 LaunchStage string `json:"launchStage,omitempty"` 3187 3188 // Name: Optional. The resource name of the monitored resource 3189 // descriptor: 3190 // "projects/{project_id}/monitoredResourceDescriptors/{type}" where 3191 // {type} is the value of the `type` field in this object and 3192 // {project_id} is a project ID that provides API-specific context for 3193 // accessing the type. APIs that do not use project information can use 3194 // the resource name format "monitoredResourceDescriptors/{type}". 3195 Name string `json:"name,omitempty"` 3196 3197 // Type: Required. The monitored resource type. For example, the type 3198 // "cloudsql_database" represents databases in Google Cloud SQL. 3199 Type string `json:"type,omitempty"` 3200 3201 // ForceSendFields is a list of field names (e.g. "Description") to 3202 // unconditionally include in API requests. By default, fields with 3203 // empty values are omitted from API requests. However, any non-pointer, 3204 // non-interface field appearing in ForceSendFields will be sent to the 3205 // server regardless of whether the field is empty or not. This may be 3206 // used to include empty fields in Patch requests. 3207 ForceSendFields []string `json:"-"` 3208 3209 // NullFields is a list of field names (e.g. "Description") to include 3210 // in API requests with the JSON null value. By default, fields with 3211 // empty values are omitted from API requests. However, any field with 3212 // an empty value appearing in NullFields will be sent to the server as 3213 // null. It is an error if a field in this list has a non-empty value. 3214 // This may be used to include null fields in Patch requests. 3215 NullFields []string `json:"-"` 3216} 3217 3218func (s *MonitoredResourceDescriptor) MarshalJSON() ([]byte, error) { 3219 type NoMethod MonitoredResourceDescriptor 3220 raw := NoMethod(*s) 3221 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3222} 3223 3224// Monitoring: Monitoring configuration of the service. The example 3225// below shows how to configure monitored resources and metrics for 3226// monitoring. In the example, a monitored resource and two metrics are 3227// defined. The `library.googleapis.com/book/returned_count` metric is 3228// sent to both producer and consumer projects, whereas the 3229// `library.googleapis.com/book/num_overdue` metric is only sent to the 3230// consumer project. monitored_resources: - type: 3231// library.googleapis.com/Branch display_name: "Library Branch" 3232// description: "A branch of a library." launch_stage: GA labels: - key: 3233// resource_container description: "The Cloud container (ie. project id) 3234// for the Branch." - key: location description: "The location of the 3235// library branch." - key: branch_id description: "The id of the 3236// branch." metrics: - name: library.googleapis.com/book/returned_count 3237// display_name: "Books Returned" description: "The count of books that 3238// have been returned." launch_stage: GA metric_kind: DELTA value_type: 3239// INT64 unit: "1" labels: - key: customer_id description: "The id of 3240// the customer." - name: library.googleapis.com/book/num_overdue 3241// display_name: "Books Overdue" description: "The current number of 3242// overdue books." launch_stage: GA metric_kind: GAUGE value_type: INT64 3243// unit: "1" labels: - key: customer_id description: "The id of the 3244// customer." monitoring: producer_destinations: - monitored_resource: 3245// library.googleapis.com/Branch metrics: - 3246// library.googleapis.com/book/returned_count consumer_destinations: - 3247// monitored_resource: library.googleapis.com/Branch metrics: - 3248// library.googleapis.com/book/returned_count - 3249// library.googleapis.com/book/num_overdue 3250type Monitoring struct { 3251 // ConsumerDestinations: Monitoring configurations for sending metrics 3252 // to the consumer project. There can be multiple consumer destinations. 3253 // A monitored resource type may appear in multiple monitoring 3254 // destinations if different aggregations are needed for different sets 3255 // of metrics associated with that monitored resource type. A monitored 3256 // resource and metric pair may only be used once in the Monitoring 3257 // configuration. 3258 ConsumerDestinations []*MonitoringDestination `json:"consumerDestinations,omitempty"` 3259 3260 // ProducerDestinations: Monitoring configurations for sending metrics 3261 // to the producer project. There can be multiple producer destinations. 3262 // A monitored resource type may appear in multiple monitoring 3263 // destinations if different aggregations are needed for different sets 3264 // of metrics associated with that monitored resource type. A monitored 3265 // resource and metric pair may only be used once in the Monitoring 3266 // configuration. 3267 ProducerDestinations []*MonitoringDestination `json:"producerDestinations,omitempty"` 3268 3269 // ForceSendFields is a list of field names (e.g. 3270 // "ConsumerDestinations") to unconditionally include in API requests. 3271 // By default, fields with empty values are omitted from API requests. 3272 // However, any non-pointer, non-interface field appearing in 3273 // ForceSendFields will be sent to the server regardless of whether the 3274 // field is empty or not. This may be used to include empty fields in 3275 // Patch requests. 3276 ForceSendFields []string `json:"-"` 3277 3278 // NullFields is a list of field names (e.g. "ConsumerDestinations") to 3279 // include in API requests with the JSON null value. By default, fields 3280 // with empty values are omitted from API requests. However, any field 3281 // with an empty value appearing in NullFields will be sent to the 3282 // server as null. It is an error if a field in this list has a 3283 // non-empty value. This may be used to include null fields in Patch 3284 // requests. 3285 NullFields []string `json:"-"` 3286} 3287 3288func (s *Monitoring) MarshalJSON() ([]byte, error) { 3289 type NoMethod Monitoring 3290 raw := NoMethod(*s) 3291 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3292} 3293 3294// MonitoringDestination: Configuration of a specific monitoring 3295// destination (the producer project or the consumer project). 3296type MonitoringDestination struct { 3297 // Metrics: Types of the metrics to report to this monitoring 3298 // destination. Each type must be defined in Service.metrics section. 3299 Metrics []string `json:"metrics,omitempty"` 3300 3301 // MonitoredResource: The monitored resource type. The type must be 3302 // defined in Service.monitored_resources section. 3303 MonitoredResource string `json:"monitoredResource,omitempty"` 3304 3305 // ForceSendFields is a list of field names (e.g. "Metrics") to 3306 // unconditionally include in API requests. By default, fields with 3307 // empty values are omitted from API requests. However, any non-pointer, 3308 // non-interface field appearing in ForceSendFields will be sent to the 3309 // server regardless of whether the field is empty or not. This may be 3310 // used to include empty fields in Patch requests. 3311 ForceSendFields []string `json:"-"` 3312 3313 // NullFields is a list of field names (e.g. "Metrics") to include in 3314 // API requests with the JSON null value. By default, fields with empty 3315 // values are omitted from API requests. However, any field with an 3316 // empty value appearing in NullFields will be sent to the server as 3317 // null. It is an error if a field in this list has a non-empty value. 3318 // This may be used to include null fields in Patch requests. 3319 NullFields []string `json:"-"` 3320} 3321 3322func (s *MonitoringDestination) MarshalJSON() ([]byte, error) { 3323 type NoMethod MonitoringDestination 3324 raw := NoMethod(*s) 3325 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3326} 3327 3328// OAuthRequirements: OAuth scopes are a way to define data and 3329// permissions on data. For example, there are scopes defined for 3330// "Read-only access to Google Calendar" and "Access to Cloud Platform". 3331// Users can consent to a scope for an application, giving it permission 3332// to access that data on their behalf. OAuth scope specifications 3333// should be fairly coarse grained; a user will need to see and 3334// understand the text description of what your scope means. In most 3335// cases: use one or at most two OAuth scopes for an entire family of 3336// products. If your product has multiple APIs, you should probably be 3337// sharing the OAuth scope across all of those APIs. When you need finer 3338// grained OAuth consent screens: talk with your product management 3339// about how developers will use them in practice. Please note that even 3340// though each of the canonical scopes is enough for a request to be 3341// accepted and passed to the backend, a request can still fail due to 3342// the backend requiring additional scopes or permissions. 3343type OAuthRequirements struct { 3344 // CanonicalScopes: The list of publicly documented OAuth scopes that 3345 // are allowed access. An OAuth token containing any of these scopes 3346 // will be accepted. Example: canonical_scopes: 3347 // https://www.googleapis.com/auth/calendar, 3348 // https://www.googleapis.com/auth/calendar.read 3349 CanonicalScopes string `json:"canonicalScopes,omitempty"` 3350 3351 // ForceSendFields is a list of field names (e.g. "CanonicalScopes") to 3352 // unconditionally include in API requests. By default, fields with 3353 // empty values are omitted from API requests. However, any non-pointer, 3354 // non-interface field appearing in ForceSendFields will be sent to the 3355 // server regardless of whether the field is empty or not. This may be 3356 // used to include empty fields in Patch requests. 3357 ForceSendFields []string `json:"-"` 3358 3359 // NullFields is a list of field names (e.g. "CanonicalScopes") to 3360 // include in API requests with the JSON null value. By default, fields 3361 // with empty values are omitted from API requests. However, any field 3362 // with an empty value appearing in NullFields will be sent to the 3363 // server as null. It is an error if a field in this list has a 3364 // non-empty value. This may be used to include null fields in Patch 3365 // requests. 3366 NullFields []string `json:"-"` 3367} 3368 3369func (s *OAuthRequirements) MarshalJSON() ([]byte, error) { 3370 type NoMethod OAuthRequirements 3371 raw := NoMethod(*s) 3372 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3373} 3374 3375// Operation: This resource represents a long-running operation that is 3376// the result of a network API call. 3377type Operation struct { 3378 // Done: If the value is `false`, it means the operation is still in 3379 // progress. If `true`, the operation is completed, and either `error` 3380 // or `response` is available. 3381 Done bool `json:"done,omitempty"` 3382 3383 // Error: The error result of the operation in case of failure or 3384 // cancellation. 3385 Error *Status `json:"error,omitempty"` 3386 3387 // Metadata: Service-specific metadata associated with the operation. It 3388 // typically contains progress information and common metadata such as 3389 // create time. Some services might not provide such metadata. Any 3390 // method that returns a long-running operation should document the 3391 // metadata type, if any. 3392 Metadata googleapi.RawMessage `json:"metadata,omitempty"` 3393 3394 // Name: The server-assigned name, which is only unique within the same 3395 // service that originally returns it. If you use the default HTTP 3396 // mapping, the `name` should be a resource name ending with 3397 // `operations/{unique_id}`. 3398 Name string `json:"name,omitempty"` 3399 3400 // Response: The normal response of the operation in case of success. If 3401 // the original method returns no data on success, such as `Delete`, the 3402 // response is `google.protobuf.Empty`. If the original method is 3403 // standard `Get`/`Create`/`Update`, the response should be the 3404 // resource. For other methods, the response should have the type 3405 // `XxxResponse`, where `Xxx` is the original method name. For example, 3406 // if the original method name is `TakeSnapshot()`, the inferred 3407 // response type is `TakeSnapshotResponse`. 3408 Response googleapi.RawMessage `json:"response,omitempty"` 3409 3410 // ServerResponse contains the HTTP response code and headers from the 3411 // server. 3412 googleapi.ServerResponse `json:"-"` 3413 3414 // ForceSendFields is a list of field names (e.g. "Done") to 3415 // unconditionally include in API requests. By default, fields with 3416 // empty values are omitted from API requests. However, any non-pointer, 3417 // non-interface field appearing in ForceSendFields will be sent to the 3418 // server regardless of whether the field is empty or not. This may be 3419 // used to include empty fields in Patch requests. 3420 ForceSendFields []string `json:"-"` 3421 3422 // NullFields is a list of field names (e.g. "Done") to include in API 3423 // requests with the JSON null value. By default, fields with empty 3424 // values are omitted from API requests. However, any field with an 3425 // empty value appearing in NullFields will be sent to the server as 3426 // null. It is an error if a field in this list has a non-empty value. 3427 // This may be used to include null fields in Patch requests. 3428 NullFields []string `json:"-"` 3429} 3430 3431func (s *Operation) MarshalJSON() ([]byte, error) { 3432 type NoMethod Operation 3433 raw := NoMethod(*s) 3434 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3435} 3436 3437// Option: A protocol buffer option, which can be attached to a message, 3438// field, enumeration, etc. 3439type Option struct { 3440 // Name: The option's name. For protobuf built-in options (options 3441 // defined in descriptor.proto), this is the short name. For example, 3442 // "map_entry". For custom options, it should be the fully-qualified 3443 // name. For example, "google.api.http". 3444 Name string `json:"name,omitempty"` 3445 3446 // Value: The option's value packed in an Any message. If the value is a 3447 // primitive, the corresponding wrapper type defined in 3448 // google/protobuf/wrappers.proto should be used. If the value is an 3449 // enum, it should be stored as an int32 value using the 3450 // google.protobuf.Int32Value type. 3451 Value googleapi.RawMessage `json:"value,omitempty"` 3452 3453 // ForceSendFields is a list of field names (e.g. "Name") to 3454 // unconditionally include in API requests. By default, fields with 3455 // empty values are omitted from API requests. However, any non-pointer, 3456 // non-interface field appearing in ForceSendFields will be sent to the 3457 // server regardless of whether the field is empty or not. This may be 3458 // used to include empty fields in Patch requests. 3459 ForceSendFields []string `json:"-"` 3460 3461 // NullFields is a list of field names (e.g. "Name") to include in API 3462 // requests with the JSON null value. By default, fields with empty 3463 // values are omitted from API requests. However, any field with an 3464 // empty value appearing in NullFields will be sent to the server as 3465 // null. It is an error if a field in this list has a non-empty value. 3466 // This may be used to include null fields in Patch requests. 3467 NullFields []string `json:"-"` 3468} 3469 3470func (s *Option) MarshalJSON() ([]byte, error) { 3471 type NoMethod Option 3472 raw := NoMethod(*s) 3473 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3474} 3475 3476// Page: Represents a documentation page. A page can contain subpages to 3477// represent nested documentation set structure. 3478type Page struct { 3479 // Content: The Markdown content of the page. You can use (== include 3480 // {path} ==) to include content from a Markdown file. 3481 Content string `json:"content,omitempty"` 3482 3483 // Name: The name of the page. It will be used as an identity of the 3484 // page to generate URI of the page, text of the link to this page in 3485 // navigation, etc. The full page name (start from the root page name to 3486 // this page concatenated with `.`) can be used as reference to the page 3487 // in your documentation. For example: pages: - name: Tutorial content: 3488 // (== include tutorial.md ==) subpages: - name: Java content: (== 3489 // include tutorial_java.md ==) You can reference `Java` page using 3490 // Markdown reference link syntax: `Java`. 3491 Name string `json:"name,omitempty"` 3492 3493 // Subpages: Subpages of this page. The order of subpages specified here 3494 // will be honored in the generated docset. 3495 Subpages []*Page `json:"subpages,omitempty"` 3496 3497 // ForceSendFields is a list of field names (e.g. "Content") to 3498 // unconditionally include in API requests. By default, fields with 3499 // empty values are omitted from API requests. However, any non-pointer, 3500 // non-interface field appearing in ForceSendFields will be sent to the 3501 // server regardless of whether the field is empty or not. This may be 3502 // used to include empty fields in Patch requests. 3503 ForceSendFields []string `json:"-"` 3504 3505 // NullFields is a list of field names (e.g. "Content") to include in 3506 // API requests with the JSON null value. By default, fields with empty 3507 // values are omitted from API requests. However, any field with an 3508 // empty value appearing in NullFields will be sent to the server as 3509 // null. It is an error if a field in this list has a non-empty value. 3510 // This may be used to include null fields in Patch requests. 3511 NullFields []string `json:"-"` 3512} 3513 3514func (s *Page) MarshalJSON() ([]byte, error) { 3515 type NoMethod Page 3516 raw := NoMethod(*s) 3517 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3518} 3519 3520// PeeredDnsDomain: DNS domain suffix for which requests originating in 3521// the producer VPC network are resolved in the associated consumer VPC 3522// network. 3523type PeeredDnsDomain struct { 3524 // DnsSuffix: The DNS domain name suffix e.g. `example.com.`. 3525 DnsSuffix string `json:"dnsSuffix,omitempty"` 3526 3527 // Name: User assigned name for this resource. Must be unique within the 3528 // consumer network. The name must be 1-63 characters long, must begin 3529 // with a letter, end with a letter or digit, and only contain lowercase 3530 // letters, digits or dashes. 3531 Name string `json:"name,omitempty"` 3532 3533 // ForceSendFields is a list of field names (e.g. "DnsSuffix") to 3534 // unconditionally include in API requests. By default, fields with 3535 // empty values are omitted from API requests. However, any non-pointer, 3536 // non-interface field appearing in ForceSendFields will be sent to the 3537 // server regardless of whether the field is empty or not. This may be 3538 // used to include empty fields in Patch requests. 3539 ForceSendFields []string `json:"-"` 3540 3541 // NullFields is a list of field names (e.g. "DnsSuffix") to include in 3542 // API requests with the JSON null value. By default, fields with empty 3543 // values are omitted from API requests. However, any field with an 3544 // empty value appearing in NullFields will be sent to the server as 3545 // null. It is an error if a field in this list has a non-empty value. 3546 // This may be used to include null fields in Patch requests. 3547 NullFields []string `json:"-"` 3548} 3549 3550func (s *PeeredDnsDomain) MarshalJSON() ([]byte, error) { 3551 type NoMethod PeeredDnsDomain 3552 raw := NoMethod(*s) 3553 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3554} 3555 3556// PeeredDnsDomainMetadata: Metadata provided through GetOperation 3557// request for the LRO generated by CreatePeeredDnsDomain API. 3558type PeeredDnsDomainMetadata struct { 3559} 3560 3561// PolicyBinding: Grouping of IAM role and IAM member. 3562type PolicyBinding struct { 3563 // Member: Required. Member to bind the role with. See 3564 // /iam/docs/reference/rest/v1/Policy#Binding for how to format each 3565 // member. Eg. - user:myuser@mydomain.com - 3566 // serviceAccount:my-service-account@app.gserviceaccount.com 3567 Member string `json:"member,omitempty"` 3568 3569 // Role: Required. Role to apply. Only allowlisted roles can be used at 3570 // the specified granularity. The role must be one of the following: - 3571 // 'roles/container.hostServiceAgentUser' applied on the shared VPC host 3572 // project - 'roles/compute.securityAdmin' applied on the shared VPC 3573 // host project 3574 Role string `json:"role,omitempty"` 3575 3576 // ForceSendFields is a list of field names (e.g. "Member") to 3577 // unconditionally include in API requests. By default, fields with 3578 // empty values are omitted from API requests. However, any non-pointer, 3579 // non-interface field appearing in ForceSendFields will be sent to the 3580 // server regardless of whether the field is empty or not. This may be 3581 // used to include empty fields in Patch requests. 3582 ForceSendFields []string `json:"-"` 3583 3584 // NullFields is a list of field names (e.g. "Member") to include in API 3585 // requests with the JSON null value. By default, fields with empty 3586 // values are omitted from API requests. However, any field with an 3587 // empty value appearing in NullFields will be sent to the server as 3588 // null. It is an error if a field in this list has a non-empty value. 3589 // This may be used to include null fields in Patch requests. 3590 NullFields []string `json:"-"` 3591} 3592 3593func (s *PolicyBinding) MarshalJSON() ([]byte, error) { 3594 type NoMethod PolicyBinding 3595 raw := NoMethod(*s) 3596 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3597} 3598 3599// Quota: Quota configuration helps to achieve fairness and budgeting in 3600// service usage. The metric based quota configuration works this way: - 3601// The service configuration defines a set of metrics. - For API calls, 3602// the quota.metric_rules maps methods to metrics with corresponding 3603// costs. - The quota.limits defines limits on the metrics, which will 3604// be used for quota checks at runtime. An example quota configuration 3605// in yaml format: quota: limits: - name: apiWriteQpsPerProject metric: 3606// library.googleapis.com/write_calls unit: "1/min/{project}" # rate 3607// limit for consumer projects values: STANDARD: 10000 # The metric 3608// rules bind all methods to the read_calls metric, # except for the 3609// UpdateBook and DeleteBook methods. These two methods # are mapped to 3610// the write_calls metric, with the UpdateBook method # consuming at 3611// twice rate as the DeleteBook method. metric_rules: - selector: "*" 3612// metric_costs: library.googleapis.com/read_calls: 1 - selector: 3613// google.example.library.v1.LibraryService.UpdateBook metric_costs: 3614// library.googleapis.com/write_calls: 2 - selector: 3615// google.example.library.v1.LibraryService.DeleteBook metric_costs: 3616// library.googleapis.com/write_calls: 1 Corresponding Metric 3617// definition: metrics: - name: library.googleapis.com/read_calls 3618// display_name: Read requests metric_kind: DELTA value_type: INT64 - 3619// name: library.googleapis.com/write_calls display_name: Write requests 3620// metric_kind: DELTA value_type: INT64 3621type Quota struct { 3622 // Limits: List of `QuotaLimit` definitions for the service. 3623 Limits []*QuotaLimit `json:"limits,omitempty"` 3624 3625 // MetricRules: List of `MetricRule` definitions, each one mapping a 3626 // selected method to one or more metrics. 3627 MetricRules []*MetricRule `json:"metricRules,omitempty"` 3628 3629 // ForceSendFields is a list of field names (e.g. "Limits") to 3630 // unconditionally include in API requests. By default, fields with 3631 // empty values are omitted from API requests. However, any non-pointer, 3632 // non-interface field appearing in ForceSendFields will be sent to the 3633 // server regardless of whether the field is empty or not. This may be 3634 // used to include empty fields in Patch requests. 3635 ForceSendFields []string `json:"-"` 3636 3637 // NullFields is a list of field names (e.g. "Limits") to include in API 3638 // requests with the JSON null value. By default, fields with empty 3639 // values are omitted from API requests. However, any field with an 3640 // empty value appearing in NullFields will be sent to the server as 3641 // null. It is an error if a field in this list has a non-empty value. 3642 // This may be used to include null fields in Patch requests. 3643 NullFields []string `json:"-"` 3644} 3645 3646func (s *Quota) MarshalJSON() ([]byte, error) { 3647 type NoMethod Quota 3648 raw := NoMethod(*s) 3649 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3650} 3651 3652// QuotaLimit: `QuotaLimit` defines a specific limit that applies over a 3653// specified duration for a limit type. There can be at most one limit 3654// for a duration and limit type combination defined within a 3655// `QuotaGroup`. 3656type QuotaLimit struct { 3657 // DefaultLimit: Default number of tokens that can be consumed during 3658 // the specified duration. This is the number of tokens assigned when a 3659 // client application developer activates the service for his/her 3660 // project. Specifying a value of 0 will block all requests. This can be 3661 // used if you are provisioning quota to selected consumers and blocking 3662 // others. Similarly, a value of -1 will indicate an unlimited quota. No 3663 // other negative values are allowed. Used by group-based quotas only. 3664 DefaultLimit int64 `json:"defaultLimit,omitempty,string"` 3665 3666 // Description: Optional. User-visible, extended description for this 3667 // quota limit. Should be used only when more context is needed to 3668 // understand this limit than provided by the limit's display name (see: 3669 // `display_name`). 3670 Description string `json:"description,omitempty"` 3671 3672 // DisplayName: User-visible display name for this limit. Optional. If 3673 // not set, the UI will provide a default display name based on the 3674 // quota configuration. This field can be used to override the default 3675 // display name generated from the configuration. 3676 DisplayName string `json:"displayName,omitempty"` 3677 3678 // Duration: Duration of this limit in textual notation. Must be "100s" 3679 // or "1d". Used by group-based quotas only. 3680 Duration string `json:"duration,omitempty"` 3681 3682 // FreeTier: Free tier value displayed in the Developers Console for 3683 // this limit. The free tier is the number of tokens that will be 3684 // subtracted from the billed amount when billing is enabled. This field 3685 // can only be set on a limit with duration "1d", in a billable group; 3686 // it is invalid on any other limit. If this field is not set, it 3687 // defaults to 0, indicating that there is no free tier for this 3688 // service. Used by group-based quotas only. 3689 FreeTier int64 `json:"freeTier,omitempty,string"` 3690 3691 // MaxLimit: Maximum number of tokens that can be consumed during the 3692 // specified duration. Client application developers can override the 3693 // default limit up to this maximum. If specified, this value cannot be 3694 // set to a value less than the default limit. If not specified, it is 3695 // set to the default limit. To allow clients to apply overrides with no 3696 // upper bound, set this to -1, indicating unlimited maximum quota. Used 3697 // by group-based quotas only. 3698 MaxLimit int64 `json:"maxLimit,omitempty,string"` 3699 3700 // Metric: The name of the metric this quota limit applies to. The quota 3701 // limits with the same metric will be checked together during runtime. 3702 // The metric must be defined within the service config. 3703 Metric string `json:"metric,omitempty"` 3704 3705 // Name: Name of the quota limit. The name must be provided, and it must 3706 // be unique within the service. The name can only include alphanumeric 3707 // characters as well as '-'. The maximum length of the limit name is 64 3708 // characters. 3709 Name string `json:"name,omitempty"` 3710 3711 // Unit: Specify the unit of the quota limit. It uses the same syntax as 3712 // Metric.unit. The supported unit kinds are determined by the quota 3713 // backend system. Here are some examples: * "1/min/{project}" for quota 3714 // per minute per project. Note: the order of unit components is 3715 // insignificant. The "1" at the beginning is required to follow the 3716 // metric unit syntax. 3717 Unit string `json:"unit,omitempty"` 3718 3719 // Values: Tiered limit values. You must specify this as a key:value 3720 // pair, with an integer value that is the maximum number of requests 3721 // allowed for the specified unit. Currently only STANDARD is supported. 3722 Values map[string]string `json:"values,omitempty"` 3723 3724 // ForceSendFields is a list of field names (e.g. "DefaultLimit") to 3725 // unconditionally include in API requests. By default, fields with 3726 // empty values are omitted from API requests. However, any non-pointer, 3727 // non-interface field appearing in ForceSendFields will be sent to the 3728 // server regardless of whether the field is empty or not. This may be 3729 // used to include empty fields in Patch requests. 3730 ForceSendFields []string `json:"-"` 3731 3732 // NullFields is a list of field names (e.g. "DefaultLimit") to include 3733 // in API requests with the JSON null value. By default, fields with 3734 // empty values are omitted from API requests. However, any field with 3735 // an empty value appearing in NullFields will be sent to the server as 3736 // null. It is an error if a field in this list has a non-empty value. 3737 // This may be used to include null fields in Patch requests. 3738 NullFields []string `json:"-"` 3739} 3740 3741func (s *QuotaLimit) MarshalJSON() ([]byte, error) { 3742 type NoMethod QuotaLimit 3743 raw := NoMethod(*s) 3744 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3745} 3746 3747// Range: Represents a found unused range. 3748type Range struct { 3749 // IpCidrRange: CIDR range in "10.x.x.x/y" format that is within the 3750 // allocated ranges and currently unused. 3751 IpCidrRange string `json:"ipCidrRange,omitempty"` 3752 3753 // Network: In the Shared VPC host project, the VPC network that's 3754 // peered with the consumer network. For example: 3755 // `projects/1234321/global/networks/host-network` 3756 Network string `json:"network,omitempty"` 3757 3758 // ForceSendFields is a list of field names (e.g. "IpCidrRange") to 3759 // unconditionally include in API requests. By default, fields with 3760 // empty values are omitted from API requests. However, any non-pointer, 3761 // non-interface field appearing in ForceSendFields will be sent to the 3762 // server regardless of whether the field is empty or not. This may be 3763 // used to include empty fields in Patch requests. 3764 ForceSendFields []string `json:"-"` 3765 3766 // NullFields is a list of field names (e.g. "IpCidrRange") to include 3767 // in API requests with the JSON null value. By default, fields with 3768 // empty values are omitted from API requests. However, any field with 3769 // an empty value appearing in NullFields will be sent to the server as 3770 // null. It is an error if a field in this list has a non-empty value. 3771 // This may be used to include null fields in Patch requests. 3772 NullFields []string `json:"-"` 3773} 3774 3775func (s *Range) MarshalJSON() ([]byte, error) { 3776 type NoMethod Range 3777 raw := NoMethod(*s) 3778 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3779} 3780 3781// RangeReservation: Represents a range reservation. 3782type RangeReservation struct { 3783 // IpPrefixLength: Required. The size of the desired subnet. Use usual 3784 // CIDR range notation. For example, '30' to find unused x.x.x.x/30 CIDR 3785 // range. The goal is to determine if one of the allocated ranges has 3786 // enough free space for a subnet of the requested size. 3787 IpPrefixLength int64 `json:"ipPrefixLength,omitempty"` 3788 3789 // RequestedRanges: Optional. The name of one or more allocated IP 3790 // address ranges associated with this private service access 3791 // connection. If no range names are provided all ranges associated with 3792 // this connection will be considered. If a CIDR range with the 3793 // specified IP prefix length is not available within these ranges the 3794 // validation fails. 3795 RequestedRanges []string `json:"requestedRanges,omitempty"` 3796 3797 // SecondaryRangeIpPrefixLengths: Optional. The size of the desired 3798 // secondary ranges for the subnet. Use usual CIDR range notation. For 3799 // example, '30' to find unused x.x.x.x/30 CIDR range. The goal is to 3800 // determine that the allocated ranges have enough free space for all 3801 // the requested secondary ranges. 3802 SecondaryRangeIpPrefixLengths []int64 `json:"secondaryRangeIpPrefixLengths,omitempty"` 3803 3804 // SubnetworkCandidates: Optional. List of subnetwork candidates to 3805 // validate. The required input fields are `name`, `network`, and 3806 // `region`. Subnetworks from this list which exist will be returned in 3807 // the response with the `ip_cidr_range`, `secondary_ip_cider_ranges`, 3808 // and `outside_allocation` fields set. 3809 SubnetworkCandidates []*Subnetwork `json:"subnetworkCandidates,omitempty"` 3810 3811 // ForceSendFields is a list of field names (e.g. "IpPrefixLength") to 3812 // unconditionally include in API requests. By default, fields with 3813 // empty values are omitted from API requests. However, any non-pointer, 3814 // non-interface field appearing in ForceSendFields will be sent to the 3815 // server regardless of whether the field is empty or not. This may be 3816 // used to include empty fields in Patch requests. 3817 ForceSendFields []string `json:"-"` 3818 3819 // NullFields is a list of field names (e.g. "IpPrefixLength") to 3820 // include in API requests with the JSON null value. By default, fields 3821 // with empty values are omitted from API requests. However, any field 3822 // with an empty value appearing in NullFields will be sent to the 3823 // server as null. It is an error if a field in this list has a 3824 // non-empty value. This may be used to include null fields in Patch 3825 // requests. 3826 NullFields []string `json:"-"` 3827} 3828 3829func (s *RangeReservation) MarshalJSON() ([]byte, error) { 3830 type NoMethod RangeReservation 3831 raw := NoMethod(*s) 3832 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3833} 3834 3835// RemoveDnsRecordSetMetadata: Metadata provided through GetOperation 3836// request for the LRO generated by RemoveDnsRecordSet API 3837type RemoveDnsRecordSetMetadata struct { 3838} 3839 3840// RemoveDnsRecordSetRequest: Request to remove a record set from a 3841// private managed DNS zone in the shared producer host project. The 3842// name, type, ttl, and data values must all exactly match an existing 3843// record set in the specified zone. 3844type RemoveDnsRecordSetRequest struct { 3845 // ConsumerNetwork: Required. The network that the consumer is using to 3846 // connect with services. Must be in the form of 3847 // projects/{project}/global/networks/{network} {project} is the project 3848 // number, as in '12345' {network} is the network name. 3849 ConsumerNetwork string `json:"consumerNetwork,omitempty"` 3850 3851 // DnsRecordSet: Required. The DNS record set to remove. 3852 DnsRecordSet *DnsRecordSet `json:"dnsRecordSet,omitempty"` 3853 3854 // Zone: Required. The name of the private DNS zone in the shared 3855 // producer host project from which the record set will be removed. 3856 Zone string `json:"zone,omitempty"` 3857 3858 // ForceSendFields is a list of field names (e.g. "ConsumerNetwork") to 3859 // unconditionally include in API requests. By default, fields with 3860 // empty values are omitted from API requests. However, any non-pointer, 3861 // non-interface field appearing in ForceSendFields will be sent to the 3862 // server regardless of whether the field is empty or not. This may be 3863 // used to include empty fields in Patch requests. 3864 ForceSendFields []string `json:"-"` 3865 3866 // NullFields is a list of field names (e.g. "ConsumerNetwork") to 3867 // include in API requests with the JSON null value. By default, fields 3868 // with empty values are omitted from API requests. However, any field 3869 // with an empty value appearing in NullFields will be sent to the 3870 // server as null. It is an error if a field in this list has a 3871 // non-empty value. This may be used to include null fields in Patch 3872 // requests. 3873 NullFields []string `json:"-"` 3874} 3875 3876func (s *RemoveDnsRecordSetRequest) MarshalJSON() ([]byte, error) { 3877 type NoMethod RemoveDnsRecordSetRequest 3878 raw := NoMethod(*s) 3879 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3880} 3881 3882// RemoveDnsRecordSetResponse: Blank message response type for 3883// RemoveDnsRecordSet API 3884type RemoveDnsRecordSetResponse struct { 3885} 3886 3887// RemoveDnsZoneMetadata: Metadata provided through GetOperation request 3888// for the LRO generated by RemoveDnsZone API 3889type RemoveDnsZoneMetadata struct { 3890} 3891 3892// RemoveDnsZoneRequest: Request to remove a private managed DNS zone in 3893// the shared producer host project and a matching DNS peering zone in 3894// the consumer project. 3895type RemoveDnsZoneRequest struct { 3896 // ConsumerNetwork: Required. The network that the consumer is using to 3897 // connect with services. Must be in the form of 3898 // projects/{project}/global/networks/{network} {project} is the project 3899 // number, as in '12345' {network} is the network name. 3900 ConsumerNetwork string `json:"consumerNetwork,omitempty"` 3901 3902 // Name: Required. The name for both the private zone in the shared 3903 // producer host project and the peering zone in the consumer project. 3904 Name string `json:"name,omitempty"` 3905 3906 // ForceSendFields is a list of field names (e.g. "ConsumerNetwork") to 3907 // unconditionally include in API requests. By default, fields with 3908 // empty values are omitted from API requests. However, any non-pointer, 3909 // non-interface field appearing in ForceSendFields will be sent to the 3910 // server regardless of whether the field is empty or not. This may be 3911 // used to include empty fields in Patch requests. 3912 ForceSendFields []string `json:"-"` 3913 3914 // NullFields is a list of field names (e.g. "ConsumerNetwork") to 3915 // include in API requests with the JSON null value. By default, fields 3916 // with empty values are omitted from API requests. However, any field 3917 // with an empty value appearing in NullFields will be sent to the 3918 // server as null. It is an error if a field in this list has a 3919 // non-empty value. This may be used to include null fields in Patch 3920 // requests. 3921 NullFields []string `json:"-"` 3922} 3923 3924func (s *RemoveDnsZoneRequest) MarshalJSON() ([]byte, error) { 3925 type NoMethod RemoveDnsZoneRequest 3926 raw := NoMethod(*s) 3927 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3928} 3929 3930// RemoveDnsZoneResponse: Blank message response type for RemoveDnsZone 3931// API 3932type RemoveDnsZoneResponse struct { 3933} 3934 3935// Route: Represents a route that was created or discovered by a private 3936// access management service. 3937type Route struct { 3938 // DestRange: Destination CIDR range that this route applies to. 3939 DestRange string `json:"destRange,omitempty"` 3940 3941 // Name: Route name. See https://cloud.google.com/vpc/docs/routes 3942 Name string `json:"name,omitempty"` 3943 3944 // Network: Fully-qualified URL of the VPC network in the producer host 3945 // tenant project that this route applies to. For example: 3946 // `projects/123456/global/networks/host-network` 3947 Network string `json:"network,omitempty"` 3948 3949 // NextHopGateway: Fully-qualified URL of the gateway that should handle 3950 // matching packets that this route applies to. For example: 3951 // `projects/123456/global/gateways/default-internet-gateway` 3952 NextHopGateway string `json:"nextHopGateway,omitempty"` 3953 3954 // ForceSendFields is a list of field names (e.g. "DestRange") to 3955 // unconditionally include in API requests. By default, fields with 3956 // empty values are omitted from API requests. However, any non-pointer, 3957 // non-interface field appearing in ForceSendFields will be sent to the 3958 // server regardless of whether the field is empty or not. This may be 3959 // used to include empty fields in Patch requests. 3960 ForceSendFields []string `json:"-"` 3961 3962 // NullFields is a list of field names (e.g. "DestRange") to include in 3963 // API requests with the JSON null value. By default, fields with empty 3964 // values are omitted from API requests. However, any field with an 3965 // empty value appearing in NullFields will be sent to the server as 3966 // null. It is an error if a field in this list has a non-empty value. 3967 // This may be used to include null fields in Patch requests. 3968 NullFields []string `json:"-"` 3969} 3970 3971func (s *Route) MarshalJSON() ([]byte, error) { 3972 type NoMethod Route 3973 raw := NoMethod(*s) 3974 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3975} 3976 3977// SearchRangeRequest: Request to search for an unused range within 3978// allocated ranges. 3979type SearchRangeRequest struct { 3980 // IpPrefixLength: Required. The prefix length of the IP range. Use 3981 // usual CIDR range notation. For example, '30' to find unused 3982 // x.x.x.x/30 CIDR range. Actual range will be determined using 3983 // allocated range for the consumer peered network and returned in the 3984 // result. 3985 IpPrefixLength int64 `json:"ipPrefixLength,omitempty"` 3986 3987 // Network: Network name in the consumer project. This network must have 3988 // been already peered with a shared VPC network using CreateConnection 3989 // method. Must be in a form 3990 // 'projects/{project}/global/networks/{network}'. {project} is a 3991 // project number, as in '12345' {network} is network name. 3992 Network string `json:"network,omitempty"` 3993 3994 // ForceSendFields is a list of field names (e.g. "IpPrefixLength") to 3995 // unconditionally include in API requests. By default, fields with 3996 // empty values are omitted from API requests. However, any non-pointer, 3997 // non-interface field appearing in ForceSendFields will be sent to the 3998 // server regardless of whether the field is empty or not. This may be 3999 // used to include empty fields in Patch requests. 4000 ForceSendFields []string `json:"-"` 4001 4002 // NullFields is a list of field names (e.g. "IpPrefixLength") to 4003 // include in API requests with the JSON null value. By default, fields 4004 // with empty values are omitted from API requests. However, any field 4005 // with an empty value appearing in NullFields will be sent to the 4006 // server as null. It is an error if a field in this list has a 4007 // non-empty value. This may be used to include null fields in Patch 4008 // requests. 4009 NullFields []string `json:"-"` 4010} 4011 4012func (s *SearchRangeRequest) MarshalJSON() ([]byte, error) { 4013 type NoMethod SearchRangeRequest 4014 raw := NoMethod(*s) 4015 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 4016} 4017 4018type SecondaryIpRange struct { 4019 // IpCidrRange: Secondary IP CIDR range in `x.x.x.x/y` format. 4020 IpCidrRange string `json:"ipCidrRange,omitempty"` 4021 4022 // RangeName: Name of the secondary IP range. 4023 RangeName string `json:"rangeName,omitempty"` 4024 4025 // ForceSendFields is a list of field names (e.g. "IpCidrRange") to 4026 // unconditionally include in API requests. By default, fields with 4027 // empty values are omitted from API requests. However, any non-pointer, 4028 // non-interface field appearing in ForceSendFields will be sent to the 4029 // server regardless of whether the field is empty or not. This may be 4030 // used to include empty fields in Patch requests. 4031 ForceSendFields []string `json:"-"` 4032 4033 // NullFields is a list of field names (e.g. "IpCidrRange") to include 4034 // in API requests with the JSON null value. By default, fields with 4035 // empty values are omitted from API requests. However, any field with 4036 // an empty value appearing in NullFields will be sent to the server as 4037 // null. It is an error if a field in this list has a non-empty value. 4038 // This may be used to include null fields in Patch requests. 4039 NullFields []string `json:"-"` 4040} 4041 4042func (s *SecondaryIpRange) MarshalJSON() ([]byte, error) { 4043 type NoMethod SecondaryIpRange 4044 raw := NoMethod(*s) 4045 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 4046} 4047 4048type SecondaryIpRangeSpec struct { 4049 // IpPrefixLength: Required. The prefix length of the secondary IP 4050 // range. Use CIDR range notation, such as `30` to provision a secondary 4051 // IP range with an `x.x.x.x/30` CIDR range. The IP address range is 4052 // drawn from a pool of available ranges in the service consumer's 4053 // allocated range. 4054 IpPrefixLength int64 `json:"ipPrefixLength,omitempty"` 4055 4056 // RangeName: Required. A name for the secondary IP range. The name must 4057 // be 1-63 characters long, and comply with RFC1035. The name must be 4058 // unique within the subnetwork. 4059 RangeName string `json:"rangeName,omitempty"` 4060 4061 // RequestedAddress: Optional. The starting address of a range. The 4062 // address must be a valid IPv4 address in the x.x.x.x format. This 4063 // value combined with the IP prefix range is the CIDR range for the 4064 // secondary IP range. The range must be within the allocated range that 4065 // is assigned to the private connection. If the CIDR range isn't 4066 // available, the call fails. 4067 RequestedAddress string `json:"requestedAddress,omitempty"` 4068 4069 // ForceSendFields is a list of field names (e.g. "IpPrefixLength") to 4070 // unconditionally include in API requests. By default, fields with 4071 // empty values are omitted from API requests. However, any non-pointer, 4072 // non-interface field appearing in ForceSendFields will be sent to the 4073 // server regardless of whether the field is empty or not. This may be 4074 // used to include empty fields in Patch requests. 4075 ForceSendFields []string `json:"-"` 4076 4077 // NullFields is a list of field names (e.g. "IpPrefixLength") to 4078 // include in API requests with the JSON null value. By default, fields 4079 // with empty values are omitted from API requests. However, any field 4080 // with an empty value appearing in NullFields will be sent to the 4081 // server as null. It is an error if a field in this list has a 4082 // non-empty value. This may be used to include null fields in Patch 4083 // requests. 4084 NullFields []string `json:"-"` 4085} 4086 4087func (s *SecondaryIpRangeSpec) MarshalJSON() ([]byte, error) { 4088 type NoMethod SecondaryIpRangeSpec 4089 raw := NoMethod(*s) 4090 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 4091} 4092 4093// Service: `Service` is the root object of Google service configuration 4094// schema. It describes basic information about a service, such as the 4095// name and the title, and delegates other aspects to sub-sections. Each 4096// sub-section is either a proto message or a repeated proto message 4097// that configures a specific aspect, such as auth. See each proto 4098// message definition for details. Example: type: google.api.Service 4099// name: calendar.googleapis.com title: Google Calendar API apis: - 4100// name: google.calendar.v3.Calendar authentication: providers: - id: 4101// google_calendar_auth jwks_uri: 4102// https://www.googleapis.com/oauth2/v1/certs issuer: 4103// https://securetoken.google.com rules: - selector: "*" requirements: 4104// provider_id: google_calendar_auth 4105type Service struct { 4106 // Apis: A list of API interfaces exported by this service. Only the 4107 // `name` field of the google.protobuf.Api needs to be provided by the 4108 // configuration author, as the remaining fields will be derived from 4109 // the IDL during the normalization process. It is an error to specify 4110 // an API interface here which cannot be resolved against the associated 4111 // IDL files. 4112 Apis []*Api `json:"apis,omitempty"` 4113 4114 // Authentication: Auth configuration. 4115 Authentication *Authentication `json:"authentication,omitempty"` 4116 4117 // Backend: API backend configuration. 4118 Backend *Backend `json:"backend,omitempty"` 4119 4120 // Billing: Billing configuration. 4121 Billing *Billing `json:"billing,omitempty"` 4122 4123 // ConfigVersion: Deprecated. The service config compiler always sets 4124 // this field to `3`. 4125 ConfigVersion int64 `json:"configVersion,omitempty"` 4126 4127 // Context: Context configuration. 4128 Context *Context `json:"context,omitempty"` 4129 4130 // Control: Configuration for the service control plane. 4131 Control *Control `json:"control,omitempty"` 4132 4133 // CustomError: Custom error configuration. 4134 CustomError *CustomError `json:"customError,omitempty"` 4135 4136 // Documentation: Additional API documentation. 4137 Documentation *Documentation `json:"documentation,omitempty"` 4138 4139 // Endpoints: Configuration for network endpoints. If this is empty, 4140 // then an endpoint with the same name as the service is automatically 4141 // generated to service all defined APIs. 4142 Endpoints []*Endpoint `json:"endpoints,omitempty"` 4143 4144 // Enums: A list of all enum types included in this API service. Enums 4145 // referenced directly or indirectly by the `apis` are automatically 4146 // included. Enums which are not referenced but shall be included should 4147 // be listed here by name. Example: enums: - name: 4148 // google.someapi.v1.SomeEnum 4149 Enums []*Enum `json:"enums,omitempty"` 4150 4151 // Http: HTTP configuration. 4152 Http *Http `json:"http,omitempty"` 4153 4154 // Id: A unique ID for a specific instance of this message, typically 4155 // assigned by the client for tracking purpose. Must be no longer than 4156 // 63 characters and only lower case letters, digits, '.', '_' and '-' 4157 // are allowed. If empty, the server may choose to generate one instead. 4158 Id string `json:"id,omitempty"` 4159 4160 // Logging: Logging configuration. 4161 Logging *Logging `json:"logging,omitempty"` 4162 4163 // Logs: Defines the logs used by this service. 4164 Logs []*LogDescriptor `json:"logs,omitempty"` 4165 4166 // Metrics: Defines the metrics used by this service. 4167 Metrics []*MetricDescriptor `json:"metrics,omitempty"` 4168 4169 // MonitoredResources: Defines the monitored resources used by this 4170 // service. This is required by the Service.monitoring and 4171 // Service.logging configurations. 4172 MonitoredResources []*MonitoredResourceDescriptor `json:"monitoredResources,omitempty"` 4173 4174 // Monitoring: Monitoring configuration. 4175 Monitoring *Monitoring `json:"monitoring,omitempty"` 4176 4177 // Name: The service name, which is a DNS-like logical identifier for 4178 // the service, such as `calendar.googleapis.com`. The service name 4179 // typically goes through DNS verification to make sure the owner of the 4180 // service also owns the DNS name. 4181 Name string `json:"name,omitempty"` 4182 4183 // ProducerProjectId: The Google project that owns this service. 4184 ProducerProjectId string `json:"producerProjectId,omitempty"` 4185 4186 // Quota: Quota configuration. 4187 Quota *Quota `json:"quota,omitempty"` 4188 4189 // SourceInfo: Output only. The source information for this 4190 // configuration if available. 4191 SourceInfo *SourceInfo `json:"sourceInfo,omitempty"` 4192 4193 // SystemParameters: System parameter configuration. 4194 SystemParameters *SystemParameters `json:"systemParameters,omitempty"` 4195 4196 // SystemTypes: A list of all proto message types included in this API 4197 // service. It serves similar purpose as [google.api.Service.types], 4198 // except that these types are not needed by user-defined APIs. 4199 // Therefore, they will not show up in the generated discovery doc. This 4200 // field should only be used to define system APIs in ESF. 4201 SystemTypes []*Type `json:"systemTypes,omitempty"` 4202 4203 // Title: The product title for this service. 4204 Title string `json:"title,omitempty"` 4205 4206 // Types: A list of all proto message types included in this API 4207 // service. Types referenced directly or indirectly by the `apis` are 4208 // automatically included. Messages which are not referenced but shall 4209 // be included, such as types used by the `google.protobuf.Any` type, 4210 // should be listed here by name. Example: types: - name: 4211 // google.protobuf.Int32 4212 Types []*Type `json:"types,omitempty"` 4213 4214 // Usage: Configuration controlling usage of this service. 4215 Usage *Usage `json:"usage,omitempty"` 4216 4217 // ForceSendFields is a list of field names (e.g. "Apis") to 4218 // unconditionally include in API requests. By default, fields with 4219 // empty values are omitted from API requests. However, any non-pointer, 4220 // non-interface field appearing in ForceSendFields will be sent to the 4221 // server regardless of whether the field is empty or not. This may be 4222 // used to include empty fields in Patch requests. 4223 ForceSendFields []string `json:"-"` 4224 4225 // NullFields is a list of field names (e.g. "Apis") to include in API 4226 // requests with the JSON null value. By default, fields with empty 4227 // values are omitted from API requests. However, any field with an 4228 // empty value appearing in NullFields will be sent to the server as 4229 // null. It is an error if a field in this list has a non-empty value. 4230 // This may be used to include null fields in Patch requests. 4231 NullFields []string `json:"-"` 4232} 4233 4234func (s *Service) MarshalJSON() ([]byte, error) { 4235 type NoMethod Service 4236 raw := NoMethod(*s) 4237 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 4238} 4239 4240// SourceContext: `SourceContext` represents information about the 4241// source of a protobuf element, like the file in which it is defined. 4242type SourceContext struct { 4243 // FileName: The path-qualified name of the .proto file that contained 4244 // the associated protobuf element. For example: 4245 // "google/protobuf/source_context.proto". 4246 FileName string `json:"fileName,omitempty"` 4247 4248 // ForceSendFields is a list of field names (e.g. "FileName") to 4249 // unconditionally include in API requests. By default, fields with 4250 // empty values are omitted from API requests. However, any non-pointer, 4251 // non-interface field appearing in ForceSendFields will be sent to the 4252 // server regardless of whether the field is empty or not. This may be 4253 // used to include empty fields in Patch requests. 4254 ForceSendFields []string `json:"-"` 4255 4256 // NullFields is a list of field names (e.g. "FileName") to include in 4257 // API requests with the JSON null value. By default, fields with empty 4258 // values are omitted from API requests. However, any field with an 4259 // empty value appearing in NullFields will be sent to the server as 4260 // null. It is an error if a field in this list has a non-empty value. 4261 // This may be used to include null fields in Patch requests. 4262 NullFields []string `json:"-"` 4263} 4264 4265func (s *SourceContext) MarshalJSON() ([]byte, error) { 4266 type NoMethod SourceContext 4267 raw := NoMethod(*s) 4268 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 4269} 4270 4271// SourceInfo: Source information used to create a Service Config 4272type SourceInfo struct { 4273 // SourceFiles: All files used during config generation. 4274 SourceFiles []googleapi.RawMessage `json:"sourceFiles,omitempty"` 4275 4276 // ForceSendFields is a list of field names (e.g. "SourceFiles") to 4277 // unconditionally include in API requests. By default, fields with 4278 // empty values are omitted from API requests. However, any non-pointer, 4279 // non-interface field appearing in ForceSendFields will be sent to the 4280 // server regardless of whether the field is empty or not. This may be 4281 // used to include empty fields in Patch requests. 4282 ForceSendFields []string `json:"-"` 4283 4284 // NullFields is a list of field names (e.g. "SourceFiles") to include 4285 // in API requests with the JSON null value. By default, fields with 4286 // empty values are omitted from API requests. However, any field with 4287 // an empty value appearing in NullFields will be sent to the server as 4288 // null. It is an error if a field in this list has a non-empty value. 4289 // This may be used to include null fields in Patch requests. 4290 NullFields []string `json:"-"` 4291} 4292 4293func (s *SourceInfo) MarshalJSON() ([]byte, error) { 4294 type NoMethod SourceInfo 4295 raw := NoMethod(*s) 4296 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 4297} 4298 4299// Status: The `Status` type defines a logical error model that is 4300// suitable for different programming environments, including REST APIs 4301// and RPC APIs. It is used by gRPC (https://github.com/grpc). Each 4302// `Status` message contains three pieces of data: error code, error 4303// message, and error details. You can find out more about this error 4304// model and how to work with it in the API Design Guide 4305// (https://cloud.google.com/apis/design/errors). 4306type Status struct { 4307 // Code: The status code, which should be an enum value of 4308 // google.rpc.Code. 4309 Code int64 `json:"code,omitempty"` 4310 4311 // Details: A list of messages that carry the error details. There is a 4312 // common set of message types for APIs to use. 4313 Details []googleapi.RawMessage `json:"details,omitempty"` 4314 4315 // Message: A developer-facing error message, which should be in 4316 // English. Any user-facing error message should be localized and sent 4317 // in the google.rpc.Status.details field, or localized by the client. 4318 Message string `json:"message,omitempty"` 4319 4320 // ForceSendFields is a list of field names (e.g. "Code") to 4321 // unconditionally include in API requests. By default, fields with 4322 // empty values are omitted from API requests. However, any non-pointer, 4323 // non-interface field appearing in ForceSendFields will be sent to the 4324 // server regardless of whether the field is empty or not. This may be 4325 // used to include empty fields in Patch requests. 4326 ForceSendFields []string `json:"-"` 4327 4328 // NullFields is a list of field names (e.g. "Code") to include in API 4329 // requests with the JSON null value. By default, fields with empty 4330 // values are omitted from API requests. However, any field with an 4331 // empty value appearing in NullFields will be sent to the server as 4332 // null. It is an error if a field in this list has a non-empty value. 4333 // This may be used to include null fields in Patch requests. 4334 NullFields []string `json:"-"` 4335} 4336 4337func (s *Status) MarshalJSON() ([]byte, error) { 4338 type NoMethod Status 4339 raw := NoMethod(*s) 4340 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 4341} 4342 4343// Subnetwork: Represents a subnet that was created or discovered by a 4344// private access management service. 4345type Subnetwork struct { 4346 // IpCidrRange: Subnetwork CIDR range in `10.x.x.x/y` format. 4347 IpCidrRange string `json:"ipCidrRange,omitempty"` 4348 4349 // Name: Subnetwork name. See https://cloud.google.com/compute/docs/vpc/ 4350 Name string `json:"name,omitempty"` 4351 4352 // Network: In the Shared VPC host project, the VPC network that's 4353 // peered with the consumer network. For example: 4354 // `projects/1234321/global/networks/host-network` 4355 Network string `json:"network,omitempty"` 4356 4357 // OutsideAllocation: This is a discovered subnet that is not within the 4358 // current consumer allocated ranges. 4359 OutsideAllocation bool `json:"outsideAllocation,omitempty"` 4360 4361 // Region: GCP region where the subnetwork is located. 4362 Region string `json:"region,omitempty"` 4363 4364 // SecondaryIpRanges: List of secondary IP ranges in this subnetwork. 4365 SecondaryIpRanges []*SecondaryIpRange `json:"secondaryIpRanges,omitempty"` 4366 4367 // ForceSendFields is a list of field names (e.g. "IpCidrRange") to 4368 // unconditionally include in API requests. By default, fields with 4369 // empty values are omitted from API requests. However, any non-pointer, 4370 // non-interface field appearing in ForceSendFields will be sent to the 4371 // server regardless of whether the field is empty or not. This may be 4372 // used to include empty fields in Patch requests. 4373 ForceSendFields []string `json:"-"` 4374 4375 // NullFields is a list of field names (e.g. "IpCidrRange") to include 4376 // in API requests with the JSON null value. By default, fields with 4377 // empty values are omitted from API requests. However, any field with 4378 // an empty value appearing in NullFields will be sent to the server as 4379 // null. It is an error if a field in this list has a non-empty value. 4380 // This may be used to include null fields in Patch requests. 4381 NullFields []string `json:"-"` 4382} 4383 4384func (s *Subnetwork) MarshalJSON() ([]byte, error) { 4385 type NoMethod Subnetwork 4386 raw := NoMethod(*s) 4387 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 4388} 4389 4390// SystemParameter: Define a parameter's name and location. The 4391// parameter may be passed as either an HTTP header or a URL query 4392// parameter, and if both are passed the behavior is 4393// implementation-dependent. 4394type SystemParameter struct { 4395 // HttpHeader: Define the HTTP header name to use for the parameter. It 4396 // is case insensitive. 4397 HttpHeader string `json:"httpHeader,omitempty"` 4398 4399 // Name: Define the name of the parameter, such as "api_key" . It is 4400 // case sensitive. 4401 Name string `json:"name,omitempty"` 4402 4403 // UrlQueryParameter: Define the URL query parameter name to use for the 4404 // parameter. It is case sensitive. 4405 UrlQueryParameter string `json:"urlQueryParameter,omitempty"` 4406 4407 // ForceSendFields is a list of field names (e.g. "HttpHeader") to 4408 // unconditionally include in API requests. By default, fields with 4409 // empty values are omitted from API requests. However, any non-pointer, 4410 // non-interface field appearing in ForceSendFields will be sent to the 4411 // server regardless of whether the field is empty or not. This may be 4412 // used to include empty fields in Patch requests. 4413 ForceSendFields []string `json:"-"` 4414 4415 // NullFields is a list of field names (e.g. "HttpHeader") to include in 4416 // API requests with the JSON null value. By default, fields with empty 4417 // values are omitted from API requests. However, any field with an 4418 // empty value appearing in NullFields will be sent to the server as 4419 // null. It is an error if a field in this list has a non-empty value. 4420 // This may be used to include null fields in Patch requests. 4421 NullFields []string `json:"-"` 4422} 4423 4424func (s *SystemParameter) MarshalJSON() ([]byte, error) { 4425 type NoMethod SystemParameter 4426 raw := NoMethod(*s) 4427 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 4428} 4429 4430// SystemParameterRule: Define a system parameter rule mapping system 4431// parameter definitions to methods. 4432type SystemParameterRule struct { 4433 // Parameters: Define parameters. Multiple names may be defined for a 4434 // parameter. For a given method call, only one of them should be used. 4435 // If multiple names are used the behavior is implementation-dependent. 4436 // If none of the specified names are present the behavior is 4437 // parameter-dependent. 4438 Parameters []*SystemParameter `json:"parameters,omitempty"` 4439 4440 // Selector: Selects the methods to which this rule applies. Use '*' to 4441 // indicate all methods in all APIs. Refer to selector for syntax 4442 // details. 4443 Selector string `json:"selector,omitempty"` 4444 4445 // ForceSendFields is a list of field names (e.g. "Parameters") to 4446 // unconditionally include in API requests. By default, fields with 4447 // empty values are omitted from API requests. However, any non-pointer, 4448 // non-interface field appearing in ForceSendFields will be sent to the 4449 // server regardless of whether the field is empty or not. This may be 4450 // used to include empty fields in Patch requests. 4451 ForceSendFields []string `json:"-"` 4452 4453 // NullFields is a list of field names (e.g. "Parameters") to include in 4454 // API requests with the JSON null value. By default, fields with empty 4455 // values are omitted from API requests. However, any field with an 4456 // empty value appearing in NullFields will be sent to the server as 4457 // null. It is an error if a field in this list has a non-empty value. 4458 // This may be used to include null fields in Patch requests. 4459 NullFields []string `json:"-"` 4460} 4461 4462func (s *SystemParameterRule) MarshalJSON() ([]byte, error) { 4463 type NoMethod SystemParameterRule 4464 raw := NoMethod(*s) 4465 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 4466} 4467 4468// SystemParameters: ### System parameter configuration A system 4469// parameter is a special kind of parameter defined by the API system, 4470// not by an individual API. It is typically mapped to an HTTP header 4471// and/or a URL query parameter. This configuration specifies which 4472// methods change the names of the system parameters. 4473type SystemParameters struct { 4474 // Rules: Define system parameters. The parameters defined here will 4475 // override the default parameters implemented by the system. If this 4476 // field is missing from the service config, default system parameters 4477 // will be used. Default system parameters and names is 4478 // implementation-dependent. Example: define api key for all methods 4479 // system_parameters rules: - selector: "*" parameters: - name: api_key 4480 // url_query_parameter: api_key Example: define 2 api key names for a 4481 // specific method. system_parameters rules: - selector: "/ListShelves" 4482 // parameters: - name: api_key http_header: Api-Key1 - name: api_key 4483 // http_header: Api-Key2 **NOTE:** All service configuration rules 4484 // follow "last one wins" order. 4485 Rules []*SystemParameterRule `json:"rules,omitempty"` 4486 4487 // ForceSendFields is a list of field names (e.g. "Rules") to 4488 // unconditionally include in API requests. By default, fields with 4489 // empty values are omitted from API requests. However, any non-pointer, 4490 // non-interface field appearing in ForceSendFields will be sent to the 4491 // server regardless of whether the field is empty or not. This may be 4492 // used to include empty fields in Patch requests. 4493 ForceSendFields []string `json:"-"` 4494 4495 // NullFields is a list of field names (e.g. "Rules") to include in API 4496 // requests with the JSON null value. By default, fields with empty 4497 // values are omitted from API requests. However, any field with an 4498 // empty value appearing in NullFields will be sent to the server as 4499 // null. It is an error if a field in this list has a non-empty value. 4500 // This may be used to include null fields in Patch requests. 4501 NullFields []string `json:"-"` 4502} 4503 4504func (s *SystemParameters) MarshalJSON() ([]byte, error) { 4505 type NoMethod SystemParameters 4506 raw := NoMethod(*s) 4507 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 4508} 4509 4510// Type: A protocol buffer message type. 4511type Type struct { 4512 // Fields: The list of fields. 4513 Fields []*Field `json:"fields,omitempty"` 4514 4515 // Name: The fully qualified message name. 4516 Name string `json:"name,omitempty"` 4517 4518 // Oneofs: The list of types appearing in `oneof` definitions in this 4519 // type. 4520 Oneofs []string `json:"oneofs,omitempty"` 4521 4522 // Options: The protocol buffer options. 4523 Options []*Option `json:"options,omitempty"` 4524 4525 // SourceContext: The source context. 4526 SourceContext *SourceContext `json:"sourceContext,omitempty"` 4527 4528 // Syntax: The source syntax. 4529 // 4530 // Possible values: 4531 // "SYNTAX_PROTO2" - Syntax `proto2`. 4532 // "SYNTAX_PROTO3" - Syntax `proto3`. 4533 Syntax string `json:"syntax,omitempty"` 4534 4535 // ForceSendFields is a list of field names (e.g. "Fields") to 4536 // unconditionally include in API requests. By default, fields with 4537 // empty values are omitted from API requests. However, any non-pointer, 4538 // non-interface field appearing in ForceSendFields will be sent to the 4539 // server regardless of whether the field is empty or not. This may be 4540 // used to include empty fields in Patch requests. 4541 ForceSendFields []string `json:"-"` 4542 4543 // NullFields is a list of field names (e.g. "Fields") to include in API 4544 // requests with the JSON null value. By default, fields with empty 4545 // values are omitted from API requests. However, any field with an 4546 // empty value appearing in NullFields will be sent to the server as 4547 // null. It is an error if a field in this list has a non-empty value. 4548 // This may be used to include null fields in Patch requests. 4549 NullFields []string `json:"-"` 4550} 4551 4552func (s *Type) MarshalJSON() ([]byte, error) { 4553 type NoMethod Type 4554 raw := NoMethod(*s) 4555 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 4556} 4557 4558// UpdateConsumerConfigRequest: Request to update the configuration of a 4559// service networking connection including the import/export of custom 4560// routes and subnetwork routes with public IP. 4561type UpdateConsumerConfigRequest struct { 4562 // ConsumerConfig: Required. The updated peering config. 4563 ConsumerConfig *ConsumerConfig `json:"consumerConfig,omitempty"` 4564 4565 // ForceSendFields is a list of field names (e.g. "ConsumerConfig") to 4566 // unconditionally include in API requests. By default, fields with 4567 // empty values are omitted from API requests. However, any non-pointer, 4568 // non-interface field appearing in ForceSendFields will be sent to the 4569 // server regardless of whether the field is empty or not. This may be 4570 // used to include empty fields in Patch requests. 4571 ForceSendFields []string `json:"-"` 4572 4573 // NullFields is a list of field names (e.g. "ConsumerConfig") to 4574 // include in API requests with the JSON null value. By default, fields 4575 // with empty values are omitted from API requests. However, any field 4576 // with an empty value appearing in NullFields will be sent to the 4577 // server as null. It is an error if a field in this list has a 4578 // non-empty value. This may be used to include null fields in Patch 4579 // requests. 4580 NullFields []string `json:"-"` 4581} 4582 4583func (s *UpdateConsumerConfigRequest) MarshalJSON() ([]byte, error) { 4584 type NoMethod UpdateConsumerConfigRequest 4585 raw := NoMethod(*s) 4586 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 4587} 4588 4589// UpdateDnsRecordSetMetadata: Metadata provided through GetOperation 4590// request for the LRO generated by UpdateDnsRecordSet API 4591type UpdateDnsRecordSetMetadata struct { 4592} 4593 4594// UpdateDnsRecordSetRequest: Request to update a record set from a 4595// private managed DNS zone in the shared producer host project. The 4596// name, type, ttl, and data values of the existing record set must all 4597// exactly match an existing record set in the specified zone. 4598type UpdateDnsRecordSetRequest struct { 4599 // ConsumerNetwork: Required. The network that the consumer is using to 4600 // connect with services. Must be in the form of 4601 // projects/{project}/global/networks/{network} {project} is the project 4602 // number, as in '12345' {network} is the network name. 4603 ConsumerNetwork string `json:"consumerNetwork,omitempty"` 4604 4605 // ExistingDnsRecordSet: Required. The existing DNS record set to 4606 // update. 4607 ExistingDnsRecordSet *DnsRecordSet `json:"existingDnsRecordSet,omitempty"` 4608 4609 // NewDnsRecordSet: Required. The new values that the DNS record set 4610 // should be updated to hold. 4611 NewDnsRecordSet *DnsRecordSet `json:"newDnsRecordSet,omitempty"` 4612 4613 // Zone: Required. The name of the private DNS zone in the shared 4614 // producer host project from which the record set will be removed. 4615 Zone string `json:"zone,omitempty"` 4616 4617 // ForceSendFields is a list of field names (e.g. "ConsumerNetwork") to 4618 // unconditionally include in API requests. By default, fields with 4619 // empty values are omitted from API requests. However, any non-pointer, 4620 // non-interface field appearing in ForceSendFields will be sent to the 4621 // server regardless of whether the field is empty or not. This may be 4622 // used to include empty fields in Patch requests. 4623 ForceSendFields []string `json:"-"` 4624 4625 // NullFields is a list of field names (e.g. "ConsumerNetwork") to 4626 // include in API requests with the JSON null value. By default, fields 4627 // with empty values are omitted from API requests. However, any field 4628 // with an empty value appearing in NullFields will be sent to the 4629 // server as null. It is an error if a field in this list has a 4630 // non-empty value. This may be used to include null fields in Patch 4631 // requests. 4632 NullFields []string `json:"-"` 4633} 4634 4635func (s *UpdateDnsRecordSetRequest) MarshalJSON() ([]byte, error) { 4636 type NoMethod UpdateDnsRecordSetRequest 4637 raw := NoMethod(*s) 4638 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 4639} 4640 4641// Usage: Configuration controlling usage of a service. 4642type Usage struct { 4643 // ProducerNotificationChannel: The full resource name of a channel used 4644 // for sending notifications to the service producer. Google Service 4645 // Management currently only supports Google Cloud Pub/Sub 4646 // (https://cloud.google.com/pubsub) as a notification channel. To use 4647 // Google Cloud Pub/Sub as the channel, this must be the name of a Cloud 4648 // Pub/Sub topic that uses the Cloud Pub/Sub topic name format 4649 // documented in https://cloud.google.com/pubsub/docs/overview. 4650 ProducerNotificationChannel string `json:"producerNotificationChannel,omitempty"` 4651 4652 // Requirements: Requirements that must be satisfied before a consumer 4653 // project can use the service. Each requirement is of the form /; for 4654 // example 'serviceusage.googleapis.com/billing-enabled'. For Google 4655 // APIs, a Terms of Service requirement must be included here. Google 4656 // Cloud APIs must include "serviceusage.googleapis.com/tos/cloud". 4657 // Other Google APIs should include 4658 // "serviceusage.googleapis.com/tos/universal". Additional ToS can be 4659 // included based on the business needs. 4660 Requirements []string `json:"requirements,omitempty"` 4661 4662 // Rules: A list of usage rules that apply to individual API methods. 4663 // **NOTE:** All service configuration rules follow "last one wins" 4664 // order. 4665 Rules []*UsageRule `json:"rules,omitempty"` 4666 4667 // ForceSendFields is a list of field names (e.g. 4668 // "ProducerNotificationChannel") to unconditionally include in API 4669 // requests. By default, fields with empty values are omitted from API 4670 // requests. However, any non-pointer, non-interface field appearing in 4671 // ForceSendFields will be sent to the server regardless of whether the 4672 // field is empty or not. This may be used to include empty fields in 4673 // Patch requests. 4674 ForceSendFields []string `json:"-"` 4675 4676 // NullFields is a list of field names (e.g. 4677 // "ProducerNotificationChannel") to include in API requests with the 4678 // JSON null value. By default, fields with empty values are omitted 4679 // from API requests. However, any field with an empty value appearing 4680 // in NullFields will be sent to the server as null. It is an error if a 4681 // field in this list has a non-empty value. This may be used to include 4682 // null fields in Patch requests. 4683 NullFields []string `json:"-"` 4684} 4685 4686func (s *Usage) MarshalJSON() ([]byte, error) { 4687 type NoMethod Usage 4688 raw := NoMethod(*s) 4689 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 4690} 4691 4692// UsageRule: Usage configuration rules for the service. NOTE: Under 4693// development. Use this rule to configure unregistered calls for the 4694// service. Unregistered calls are calls that do not contain consumer 4695// project identity. (Example: calls that do not contain an API key). By 4696// default, API methods do not allow unregistered calls, and each method 4697// call must be identified by a consumer project identity. Use this rule 4698// to allow/disallow unregistered calls. Example of an API that wants to 4699// allow unregistered calls for entire service. usage: rules: - 4700// selector: "*" allow_unregistered_calls: true Example of a method that 4701// wants to allow unregistered calls. usage: rules: - selector: 4702// "google.example.library.v1.LibraryService.CreateBook" 4703// allow_unregistered_calls: true 4704type UsageRule struct { 4705 // AllowUnregisteredCalls: If true, the selected method allows 4706 // unregistered calls, e.g. calls that don't identify any user or 4707 // application. 4708 AllowUnregisteredCalls bool `json:"allowUnregisteredCalls,omitempty"` 4709 4710 // Selector: Selects the methods to which this rule applies. Use '*' to 4711 // indicate all methods in all APIs. Refer to selector for syntax 4712 // details. 4713 Selector string `json:"selector,omitempty"` 4714 4715 // SkipServiceControl: If true, the selected method should skip service 4716 // control and the control plane features, such as quota and billing, 4717 // will not be available. This flag is used by Google Cloud Endpoints to 4718 // bypass checks for internal methods, such as service health check 4719 // methods. 4720 SkipServiceControl bool `json:"skipServiceControl,omitempty"` 4721 4722 // ForceSendFields is a list of field names (e.g. 4723 // "AllowUnregisteredCalls") to unconditionally include in API requests. 4724 // By default, fields with empty values are omitted from API requests. 4725 // However, any non-pointer, non-interface field appearing in 4726 // ForceSendFields will be sent to the server regardless of whether the 4727 // field is empty or not. This may be used to include empty fields in 4728 // Patch requests. 4729 ForceSendFields []string `json:"-"` 4730 4731 // NullFields is a list of field names (e.g. "AllowUnregisteredCalls") 4732 // to include in API requests with the JSON null value. By default, 4733 // fields with empty values are omitted from API requests. However, any 4734 // field with an empty value appearing in NullFields will be sent to the 4735 // server as null. It is an error if a field in this list has a 4736 // non-empty value. This may be used to include null fields in Patch 4737 // requests. 4738 NullFields []string `json:"-"` 4739} 4740 4741func (s *UsageRule) MarshalJSON() ([]byte, error) { 4742 type NoMethod UsageRule 4743 raw := NoMethod(*s) 4744 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 4745} 4746 4747type ValidateConsumerConfigRequest struct { 4748 // ConsumerNetwork: Required. The network that the consumer is using to 4749 // connect with services. Must be in the form of 4750 // projects/{project}/global/networks/{network} {project} is a project 4751 // number, as in '12345' {network} is network name. 4752 ConsumerNetwork string `json:"consumerNetwork,omitempty"` 4753 4754 // ConsumerProject: NETWORK_NOT_IN_CONSUMERS_PROJECT, 4755 // NETWORK_NOT_IN_CONSUMERS_HOST_PROJECT, and HOST_PROJECT_NOT_FOUND are 4756 // done when consumer_project is provided. 4757 ConsumerProject *ConsumerProject `json:"consumerProject,omitempty"` 4758 4759 // RangeReservation: RANGES_EXHAUSTED, RANGES_EXHAUSTED, and 4760 // RANGES_DELETED_LATER are done when range_reservation is provided. 4761 RangeReservation *RangeReservation `json:"rangeReservation,omitempty"` 4762 4763 // ValidateNetwork: The validations will be performed in the order 4764 // listed in the ValidationError enum. The first failure will return. If 4765 // a validation is not requested, then the next one will be performed. 4766 // SERVICE_NETWORKING_NOT_ENABLED and NETWORK_NOT_PEERED checks are 4767 // performed for all requests where validation is requested. 4768 // NETWORK_NOT_FOUND and NETWORK_DISCONNECTED checks are done for 4769 // requests that have validate_network set to true. 4770 ValidateNetwork bool `json:"validateNetwork,omitempty"` 4771 4772 // ForceSendFields is a list of field names (e.g. "ConsumerNetwork") to 4773 // unconditionally include in API requests. By default, fields with 4774 // empty values are omitted from API requests. However, any non-pointer, 4775 // non-interface field appearing in ForceSendFields will be sent to the 4776 // server regardless of whether the field is empty or not. This may be 4777 // used to include empty fields in Patch requests. 4778 ForceSendFields []string `json:"-"` 4779 4780 // NullFields is a list of field names (e.g. "ConsumerNetwork") to 4781 // include in API requests with the JSON null value. By default, fields 4782 // with empty values are omitted from API requests. However, any field 4783 // with an empty value appearing in NullFields will be sent to the 4784 // server as null. It is an error if a field in this list has a 4785 // non-empty value. This may be used to include null fields in Patch 4786 // requests. 4787 NullFields []string `json:"-"` 4788} 4789 4790func (s *ValidateConsumerConfigRequest) MarshalJSON() ([]byte, error) { 4791 type NoMethod ValidateConsumerConfigRequest 4792 raw := NoMethod(*s) 4793 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 4794} 4795 4796type ValidateConsumerConfigResponse struct { 4797 // ExistingSubnetworkCandidates: List of subnetwork candidates from the 4798 // request which exist with the `ip_cidr_range`, 4799 // `secondary_ip_cider_ranges`, and `outside_allocation` fields set. 4800 ExistingSubnetworkCandidates []*Subnetwork `json:"existingSubnetworkCandidates,omitempty"` 4801 4802 // IsValid: Indicates whether all the requested validations passed. 4803 IsValid bool `json:"isValid,omitempty"` 4804 4805 // ValidationError: The first validation which failed. 4806 // 4807 // Possible values: 4808 // "VALIDATION_ERROR_UNSPECIFIED" 4809 // "VALIDATION_NOT_REQUESTED" - In case none of the validations are 4810 // requested. 4811 // "SERVICE_NETWORKING_NOT_ENABLED" 4812 // "NETWORK_NOT_FOUND" - The network provided by the consumer does not 4813 // exist. 4814 // "NETWORK_NOT_PEERED" - The network has not been peered with the 4815 // producer org. 4816 // "NETWORK_PEERING_DELETED" - The peering was created and later 4817 // deleted. 4818 // "NETWORK_NOT_IN_CONSUMERS_PROJECT" - The network is a regular VPC 4819 // but the network is not in the consumer's project. 4820 // "NETWORK_NOT_IN_CONSUMERS_HOST_PROJECT" - The consumer project is a 4821 // service project, and network is a shared VPC, but the network is not 4822 // in the host project of this consumer project. 4823 // "HOST_PROJECT_NOT_FOUND" - The host project associated with the 4824 // consumer project was not found. 4825 // "CONSUMER_PROJECT_NOT_SERVICE_PROJECT" - The consumer project is 4826 // not a service project for the specified host project. 4827 // "RANGES_EXHAUSTED" - The reserved IP ranges do not have enough 4828 // space to create a subnet of desired size. 4829 // "RANGES_NOT_RESERVED" - The IP ranges were not reserved. 4830 // "RANGES_DELETED_LATER" - The IP ranges were reserved but deleted 4831 // later. 4832 // "COMPUTE_API_NOT_ENABLED" - The consumer project does not have the 4833 // compute api enabled. 4834 ValidationError string `json:"validationError,omitempty"` 4835 4836 // ServerResponse contains the HTTP response code and headers from the 4837 // server. 4838 googleapi.ServerResponse `json:"-"` 4839 4840 // ForceSendFields is a list of field names (e.g. 4841 // "ExistingSubnetworkCandidates") to unconditionally include in API 4842 // requests. By default, fields with empty values are omitted from API 4843 // requests. However, any non-pointer, non-interface field appearing in 4844 // ForceSendFields will be sent to the server regardless of whether the 4845 // field is empty or not. This may be used to include empty fields in 4846 // Patch requests. 4847 ForceSendFields []string `json:"-"` 4848 4849 // NullFields is a list of field names (e.g. 4850 // "ExistingSubnetworkCandidates") to include in API requests with the 4851 // JSON null value. By default, fields with empty values are omitted 4852 // from API requests. However, any field with an empty value appearing 4853 // in NullFields will be sent to the server as null. It is an error if a 4854 // field in this list has a non-empty value. This may be used to include 4855 // null fields in Patch requests. 4856 NullFields []string `json:"-"` 4857} 4858 4859func (s *ValidateConsumerConfigResponse) MarshalJSON() ([]byte, error) { 4860 type NoMethod ValidateConsumerConfigResponse 4861 raw := NoMethod(*s) 4862 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 4863} 4864 4865// method id "servicenetworking.operations.cancel": 4866 4867type OperationsCancelCall struct { 4868 s *APIService 4869 name string 4870 canceloperationrequest *CancelOperationRequest 4871 urlParams_ gensupport.URLParams 4872 ctx_ context.Context 4873 header_ http.Header 4874} 4875 4876// Cancel: Starts asynchronous cancellation on a long-running operation. 4877// The server makes a best effort to cancel the operation, but success 4878// is not guaranteed. If the server doesn't support this method, it 4879// returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use 4880// Operations.GetOperation or other methods to check whether the 4881// cancellation succeeded or whether the operation completed despite 4882// cancellation. On successful cancellation, the operation is not 4883// deleted; instead, it becomes an operation with an Operation.error 4884// value with a google.rpc.Status.code of 1, corresponding to 4885// `Code.CANCELLED`. 4886func (r *OperationsService) Cancel(name string, canceloperationrequest *CancelOperationRequest) *OperationsCancelCall { 4887 c := &OperationsCancelCall{s: r.s, urlParams_: make(gensupport.URLParams)} 4888 c.name = name 4889 c.canceloperationrequest = canceloperationrequest 4890 return c 4891} 4892 4893// Fields allows partial responses to be retrieved. See 4894// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 4895// for more information. 4896func (c *OperationsCancelCall) Fields(s ...googleapi.Field) *OperationsCancelCall { 4897 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 4898 return c 4899} 4900 4901// Context sets the context to be used in this call's Do method. Any 4902// pending HTTP request will be aborted if the provided context is 4903// canceled. 4904func (c *OperationsCancelCall) Context(ctx context.Context) *OperationsCancelCall { 4905 c.ctx_ = ctx 4906 return c 4907} 4908 4909// Header returns an http.Header that can be modified by the caller to 4910// add HTTP headers to the request. 4911func (c *OperationsCancelCall) Header() http.Header { 4912 if c.header_ == nil { 4913 c.header_ = make(http.Header) 4914 } 4915 return c.header_ 4916} 4917 4918func (c *OperationsCancelCall) doRequest(alt string) (*http.Response, error) { 4919 reqHeaders := make(http.Header) 4920 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322") 4921 for k, v := range c.header_ { 4922 reqHeaders[k] = v 4923 } 4924 reqHeaders.Set("User-Agent", c.s.userAgent()) 4925 var body io.Reader = nil 4926 body, err := googleapi.WithoutDataWrapper.JSONReader(c.canceloperationrequest) 4927 if err != nil { 4928 return nil, err 4929 } 4930 reqHeaders.Set("Content-Type", "application/json") 4931 c.urlParams_.Set("alt", alt) 4932 c.urlParams_.Set("prettyPrint", "false") 4933 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:cancel") 4934 urls += "?" + c.urlParams_.Encode() 4935 req, err := http.NewRequest("POST", urls, body) 4936 if err != nil { 4937 return nil, err 4938 } 4939 req.Header = reqHeaders 4940 googleapi.Expand(req.URL, map[string]string{ 4941 "name": c.name, 4942 }) 4943 return gensupport.SendRequest(c.ctx_, c.s.client, req) 4944} 4945 4946// Do executes the "servicenetworking.operations.cancel" call. 4947// Exactly one of *Empty or error will be non-nil. Any non-2xx status 4948// code is an error. Response headers are in either 4949// *Empty.ServerResponse.Header or (if a response was returned at all) 4950// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to 4951// check whether the returned error was because http.StatusNotModified 4952// was returned. 4953func (c *OperationsCancelCall) Do(opts ...googleapi.CallOption) (*Empty, error) { 4954 gensupport.SetOptions(c.urlParams_, opts...) 4955 res, err := c.doRequest("json") 4956 if res != nil && res.StatusCode == http.StatusNotModified { 4957 if res.Body != nil { 4958 res.Body.Close() 4959 } 4960 return nil, &googleapi.Error{ 4961 Code: res.StatusCode, 4962 Header: res.Header, 4963 } 4964 } 4965 if err != nil { 4966 return nil, err 4967 } 4968 defer googleapi.CloseBody(res) 4969 if err := googleapi.CheckResponse(res); err != nil { 4970 return nil, err 4971 } 4972 ret := &Empty{ 4973 ServerResponse: googleapi.ServerResponse{ 4974 Header: res.Header, 4975 HTTPStatusCode: res.StatusCode, 4976 }, 4977 } 4978 target := &ret 4979 if err := gensupport.DecodeResponse(target, res); err != nil { 4980 return nil, err 4981 } 4982 return ret, nil 4983 // { 4984 // "description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", 4985 // "flatPath": "v1/operations/{operationsId}:cancel", 4986 // "httpMethod": "POST", 4987 // "id": "servicenetworking.operations.cancel", 4988 // "parameterOrder": [ 4989 // "name" 4990 // ], 4991 // "parameters": { 4992 // "name": { 4993 // "description": "The name of the operation resource to be cancelled.", 4994 // "location": "path", 4995 // "pattern": "^operations/.*$", 4996 // "required": true, 4997 // "type": "string" 4998 // } 4999 // }, 5000 // "path": "v1/{+name}:cancel", 5001 // "request": { 5002 // "$ref": "CancelOperationRequest" 5003 // }, 5004 // "response": { 5005 // "$ref": "Empty" 5006 // }, 5007 // "scopes": [ 5008 // "https://www.googleapis.com/auth/cloud-platform", 5009 // "https://www.googleapis.com/auth/service.management" 5010 // ] 5011 // } 5012 5013} 5014 5015// method id "servicenetworking.operations.delete": 5016 5017type OperationsDeleteCall struct { 5018 s *APIService 5019 name string 5020 urlParams_ gensupport.URLParams 5021 ctx_ context.Context 5022 header_ http.Header 5023} 5024 5025// Delete: Deletes a long-running operation. This method indicates that 5026// the client is no longer interested in the operation result. It does 5027// not cancel the operation. If the server doesn't support this method, 5028// it returns `google.rpc.Code.UNIMPLEMENTED`. 5029func (r *OperationsService) Delete(name string) *OperationsDeleteCall { 5030 c := &OperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} 5031 c.name = name 5032 return c 5033} 5034 5035// Fields allows partial responses to be retrieved. See 5036// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 5037// for more information. 5038func (c *OperationsDeleteCall) Fields(s ...googleapi.Field) *OperationsDeleteCall { 5039 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 5040 return c 5041} 5042 5043// Context sets the context to be used in this call's Do method. Any 5044// pending HTTP request will be aborted if the provided context is 5045// canceled. 5046func (c *OperationsDeleteCall) Context(ctx context.Context) *OperationsDeleteCall { 5047 c.ctx_ = ctx 5048 return c 5049} 5050 5051// Header returns an http.Header that can be modified by the caller to 5052// add HTTP headers to the request. 5053func (c *OperationsDeleteCall) Header() http.Header { 5054 if c.header_ == nil { 5055 c.header_ = make(http.Header) 5056 } 5057 return c.header_ 5058} 5059 5060func (c *OperationsDeleteCall) doRequest(alt string) (*http.Response, error) { 5061 reqHeaders := make(http.Header) 5062 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322") 5063 for k, v := range c.header_ { 5064 reqHeaders[k] = v 5065 } 5066 reqHeaders.Set("User-Agent", c.s.userAgent()) 5067 var body io.Reader = nil 5068 c.urlParams_.Set("alt", alt) 5069 c.urlParams_.Set("prettyPrint", "false") 5070 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}") 5071 urls += "?" + c.urlParams_.Encode() 5072 req, err := http.NewRequest("DELETE", urls, body) 5073 if err != nil { 5074 return nil, err 5075 } 5076 req.Header = reqHeaders 5077 googleapi.Expand(req.URL, map[string]string{ 5078 "name": c.name, 5079 }) 5080 return gensupport.SendRequest(c.ctx_, c.s.client, req) 5081} 5082 5083// Do executes the "servicenetworking.operations.delete" call. 5084// Exactly one of *Empty or error will be non-nil. Any non-2xx status 5085// code is an error. Response headers are in either 5086// *Empty.ServerResponse.Header or (if a response was returned at all) 5087// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to 5088// check whether the returned error was because http.StatusNotModified 5089// was returned. 5090func (c *OperationsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) { 5091 gensupport.SetOptions(c.urlParams_, opts...) 5092 res, err := c.doRequest("json") 5093 if res != nil && res.StatusCode == http.StatusNotModified { 5094 if res.Body != nil { 5095 res.Body.Close() 5096 } 5097 return nil, &googleapi.Error{ 5098 Code: res.StatusCode, 5099 Header: res.Header, 5100 } 5101 } 5102 if err != nil { 5103 return nil, err 5104 } 5105 defer googleapi.CloseBody(res) 5106 if err := googleapi.CheckResponse(res); err != nil { 5107 return nil, err 5108 } 5109 ret := &Empty{ 5110 ServerResponse: googleapi.ServerResponse{ 5111 Header: res.Header, 5112 HTTPStatusCode: res.StatusCode, 5113 }, 5114 } 5115 target := &ret 5116 if err := gensupport.DecodeResponse(target, res); err != nil { 5117 return nil, err 5118 } 5119 return ret, nil 5120 // { 5121 // "description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", 5122 // "flatPath": "v1/operations/{operationsId}", 5123 // "httpMethod": "DELETE", 5124 // "id": "servicenetworking.operations.delete", 5125 // "parameterOrder": [ 5126 // "name" 5127 // ], 5128 // "parameters": { 5129 // "name": { 5130 // "description": "The name of the operation resource to be deleted.", 5131 // "location": "path", 5132 // "pattern": "^operations/.*$", 5133 // "required": true, 5134 // "type": "string" 5135 // } 5136 // }, 5137 // "path": "v1/{+name}", 5138 // "response": { 5139 // "$ref": "Empty" 5140 // }, 5141 // "scopes": [ 5142 // "https://www.googleapis.com/auth/cloud-platform", 5143 // "https://www.googleapis.com/auth/service.management" 5144 // ] 5145 // } 5146 5147} 5148 5149// method id "servicenetworking.operations.get": 5150 5151type OperationsGetCall struct { 5152 s *APIService 5153 name string 5154 urlParams_ gensupport.URLParams 5155 ifNoneMatch_ string 5156 ctx_ context.Context 5157 header_ http.Header 5158} 5159 5160// Get: Gets the latest state of a long-running operation. Clients can 5161// use this method to poll the operation result at intervals as 5162// recommended by the API service. 5163func (r *OperationsService) Get(name string) *OperationsGetCall { 5164 c := &OperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} 5165 c.name = name 5166 return c 5167} 5168 5169// Fields allows partial responses to be retrieved. See 5170// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 5171// for more information. 5172func (c *OperationsGetCall) Fields(s ...googleapi.Field) *OperationsGetCall { 5173 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 5174 return c 5175} 5176 5177// IfNoneMatch sets the optional parameter which makes the operation 5178// fail if the object's ETag matches the given value. This is useful for 5179// getting updates only after the object has changed since the last 5180// request. Use googleapi.IsNotModified to check whether the response 5181// error from Do is the result of In-None-Match. 5182func (c *OperationsGetCall) IfNoneMatch(entityTag string) *OperationsGetCall { 5183 c.ifNoneMatch_ = entityTag 5184 return c 5185} 5186 5187// Context sets the context to be used in this call's Do method. Any 5188// pending HTTP request will be aborted if the provided context is 5189// canceled. 5190func (c *OperationsGetCall) Context(ctx context.Context) *OperationsGetCall { 5191 c.ctx_ = ctx 5192 return c 5193} 5194 5195// Header returns an http.Header that can be modified by the caller to 5196// add HTTP headers to the request. 5197func (c *OperationsGetCall) Header() http.Header { 5198 if c.header_ == nil { 5199 c.header_ = make(http.Header) 5200 } 5201 return c.header_ 5202} 5203 5204func (c *OperationsGetCall) doRequest(alt string) (*http.Response, error) { 5205 reqHeaders := make(http.Header) 5206 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322") 5207 for k, v := range c.header_ { 5208 reqHeaders[k] = v 5209 } 5210 reqHeaders.Set("User-Agent", c.s.userAgent()) 5211 if c.ifNoneMatch_ != "" { 5212 reqHeaders.Set("If-None-Match", c.ifNoneMatch_) 5213 } 5214 var body io.Reader = nil 5215 c.urlParams_.Set("alt", alt) 5216 c.urlParams_.Set("prettyPrint", "false") 5217 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}") 5218 urls += "?" + c.urlParams_.Encode() 5219 req, err := http.NewRequest("GET", urls, body) 5220 if err != nil { 5221 return nil, err 5222 } 5223 req.Header = reqHeaders 5224 googleapi.Expand(req.URL, map[string]string{ 5225 "name": c.name, 5226 }) 5227 return gensupport.SendRequest(c.ctx_, c.s.client, req) 5228} 5229 5230// Do executes the "servicenetworking.operations.get" call. 5231// Exactly one of *Operation or error will be non-nil. Any non-2xx 5232// status code is an error. Response headers are in either 5233// *Operation.ServerResponse.Header or (if a response was returned at 5234// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified 5235// to check whether the returned error was because 5236// http.StatusNotModified was returned. 5237func (c *OperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) { 5238 gensupport.SetOptions(c.urlParams_, opts...) 5239 res, err := c.doRequest("json") 5240 if res != nil && res.StatusCode == http.StatusNotModified { 5241 if res.Body != nil { 5242 res.Body.Close() 5243 } 5244 return nil, &googleapi.Error{ 5245 Code: res.StatusCode, 5246 Header: res.Header, 5247 } 5248 } 5249 if err != nil { 5250 return nil, err 5251 } 5252 defer googleapi.CloseBody(res) 5253 if err := googleapi.CheckResponse(res); err != nil { 5254 return nil, err 5255 } 5256 ret := &Operation{ 5257 ServerResponse: googleapi.ServerResponse{ 5258 Header: res.Header, 5259 HTTPStatusCode: res.StatusCode, 5260 }, 5261 } 5262 target := &ret 5263 if err := gensupport.DecodeResponse(target, res); err != nil { 5264 return nil, err 5265 } 5266 return ret, nil 5267 // { 5268 // "description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", 5269 // "flatPath": "v1/operations/{operationsId}", 5270 // "httpMethod": "GET", 5271 // "id": "servicenetworking.operations.get", 5272 // "parameterOrder": [ 5273 // "name" 5274 // ], 5275 // "parameters": { 5276 // "name": { 5277 // "description": "The name of the operation resource.", 5278 // "location": "path", 5279 // "pattern": "^operations/[^/]+$", 5280 // "required": true, 5281 // "type": "string" 5282 // } 5283 // }, 5284 // "path": "v1/{+name}", 5285 // "response": { 5286 // "$ref": "Operation" 5287 // }, 5288 // "scopes": [ 5289 // "https://www.googleapis.com/auth/cloud-platform", 5290 // "https://www.googleapis.com/auth/service.management" 5291 // ] 5292 // } 5293 5294} 5295 5296// method id "servicenetworking.operations.list": 5297 5298type OperationsListCall struct { 5299 s *APIService 5300 name string 5301 urlParams_ gensupport.URLParams 5302 ifNoneMatch_ string 5303 ctx_ context.Context 5304 header_ http.Header 5305} 5306 5307// List: Lists operations that match the specified filter in the 5308// request. If the server doesn't support this method, it returns 5309// `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to 5310// override the binding to use different resource name schemes, such as 5311// `users/*/operations`. To override the binding, API services can add a 5312// binding such as "/v1/{name=users/*}/operations" to their service 5313// configuration. For backwards compatibility, the default name includes 5314// the operations collection id, however overriding users must ensure 5315// the name binding is the parent resource, without the operations 5316// collection id. 5317func (r *OperationsService) List(name string) *OperationsListCall { 5318 c := &OperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} 5319 c.name = name 5320 return c 5321} 5322 5323// Filter sets the optional parameter "filter": The standard list 5324// filter. 5325func (c *OperationsListCall) Filter(filter string) *OperationsListCall { 5326 c.urlParams_.Set("filter", filter) 5327 return c 5328} 5329 5330// PageSize sets the optional parameter "pageSize": The standard list 5331// page size. 5332func (c *OperationsListCall) PageSize(pageSize int64) *OperationsListCall { 5333 c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) 5334 return c 5335} 5336 5337// PageToken sets the optional parameter "pageToken": The standard list 5338// page token. 5339func (c *OperationsListCall) PageToken(pageToken string) *OperationsListCall { 5340 c.urlParams_.Set("pageToken", pageToken) 5341 return c 5342} 5343 5344// Fields allows partial responses to be retrieved. See 5345// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 5346// for more information. 5347func (c *OperationsListCall) Fields(s ...googleapi.Field) *OperationsListCall { 5348 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 5349 return c 5350} 5351 5352// IfNoneMatch sets the optional parameter which makes the operation 5353// fail if the object's ETag matches the given value. This is useful for 5354// getting updates only after the object has changed since the last 5355// request. Use googleapi.IsNotModified to check whether the response 5356// error from Do is the result of In-None-Match. 5357func (c *OperationsListCall) IfNoneMatch(entityTag string) *OperationsListCall { 5358 c.ifNoneMatch_ = entityTag 5359 return c 5360} 5361 5362// Context sets the context to be used in this call's Do method. Any 5363// pending HTTP request will be aborted if the provided context is 5364// canceled. 5365func (c *OperationsListCall) Context(ctx context.Context) *OperationsListCall { 5366 c.ctx_ = ctx 5367 return c 5368} 5369 5370// Header returns an http.Header that can be modified by the caller to 5371// add HTTP headers to the request. 5372func (c *OperationsListCall) Header() http.Header { 5373 if c.header_ == nil { 5374 c.header_ = make(http.Header) 5375 } 5376 return c.header_ 5377} 5378 5379func (c *OperationsListCall) doRequest(alt string) (*http.Response, error) { 5380 reqHeaders := make(http.Header) 5381 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322") 5382 for k, v := range c.header_ { 5383 reqHeaders[k] = v 5384 } 5385 reqHeaders.Set("User-Agent", c.s.userAgent()) 5386 if c.ifNoneMatch_ != "" { 5387 reqHeaders.Set("If-None-Match", c.ifNoneMatch_) 5388 } 5389 var body io.Reader = nil 5390 c.urlParams_.Set("alt", alt) 5391 c.urlParams_.Set("prettyPrint", "false") 5392 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}") 5393 urls += "?" + c.urlParams_.Encode() 5394 req, err := http.NewRequest("GET", urls, body) 5395 if err != nil { 5396 return nil, err 5397 } 5398 req.Header = reqHeaders 5399 googleapi.Expand(req.URL, map[string]string{ 5400 "name": c.name, 5401 }) 5402 return gensupport.SendRequest(c.ctx_, c.s.client, req) 5403} 5404 5405// Do executes the "servicenetworking.operations.list" call. 5406// Exactly one of *ListOperationsResponse or error will be non-nil. Any 5407// non-2xx status code is an error. Response headers are in either 5408// *ListOperationsResponse.ServerResponse.Header or (if a response was 5409// returned at all) in error.(*googleapi.Error).Header. Use 5410// googleapi.IsNotModified to check whether the returned error was 5411// because http.StatusNotModified was returned. 5412func (c *OperationsListCall) Do(opts ...googleapi.CallOption) (*ListOperationsResponse, error) { 5413 gensupport.SetOptions(c.urlParams_, opts...) 5414 res, err := c.doRequest("json") 5415 if res != nil && res.StatusCode == http.StatusNotModified { 5416 if res.Body != nil { 5417 res.Body.Close() 5418 } 5419 return nil, &googleapi.Error{ 5420 Code: res.StatusCode, 5421 Header: res.Header, 5422 } 5423 } 5424 if err != nil { 5425 return nil, err 5426 } 5427 defer googleapi.CloseBody(res) 5428 if err := googleapi.CheckResponse(res); err != nil { 5429 return nil, err 5430 } 5431 ret := &ListOperationsResponse{ 5432 ServerResponse: googleapi.ServerResponse{ 5433 Header: res.Header, 5434 HTTPStatusCode: res.StatusCode, 5435 }, 5436 } 5437 target := &ret 5438 if err := gensupport.DecodeResponse(target, res); err != nil { 5439 return nil, err 5440 } 5441 return ret, nil 5442 // { 5443 // "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", 5444 // "flatPath": "v1/operations", 5445 // "httpMethod": "GET", 5446 // "id": "servicenetworking.operations.list", 5447 // "parameterOrder": [ 5448 // "name" 5449 // ], 5450 // "parameters": { 5451 // "filter": { 5452 // "description": "The standard list filter.", 5453 // "location": "query", 5454 // "type": "string" 5455 // }, 5456 // "name": { 5457 // "description": "The name of the operation's parent resource.", 5458 // "location": "path", 5459 // "pattern": "^operations$", 5460 // "required": true, 5461 // "type": "string" 5462 // }, 5463 // "pageSize": { 5464 // "description": "The standard list page size.", 5465 // "format": "int32", 5466 // "location": "query", 5467 // "type": "integer" 5468 // }, 5469 // "pageToken": { 5470 // "description": "The standard list page token.", 5471 // "location": "query", 5472 // "type": "string" 5473 // } 5474 // }, 5475 // "path": "v1/{+name}", 5476 // "response": { 5477 // "$ref": "ListOperationsResponse" 5478 // }, 5479 // "scopes": [ 5480 // "https://www.googleapis.com/auth/cloud-platform", 5481 // "https://www.googleapis.com/auth/service.management" 5482 // ] 5483 // } 5484 5485} 5486 5487// Pages invokes f for each page of results. 5488// A non-nil error returned from f will halt the iteration. 5489// The provided context supersedes any context provided to the Context method. 5490func (c *OperationsListCall) Pages(ctx context.Context, f func(*ListOperationsResponse) error) error { 5491 c.ctx_ = ctx 5492 defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point 5493 for { 5494 x, err := c.Do() 5495 if err != nil { 5496 return err 5497 } 5498 if err := f(x); err != nil { 5499 return err 5500 } 5501 if x.NextPageToken == "" { 5502 return nil 5503 } 5504 c.PageToken(x.NextPageToken) 5505 } 5506} 5507 5508// method id "servicenetworking.services.addSubnetwork": 5509 5510type ServicesAddSubnetworkCall struct { 5511 s *APIService 5512 parent string 5513 addsubnetworkrequest *AddSubnetworkRequest 5514 urlParams_ gensupport.URLParams 5515 ctx_ context.Context 5516 header_ http.Header 5517} 5518 5519// AddSubnetwork: For service producers, provisions a new subnet in a 5520// peered service's shared VPC network in the requested region and with 5521// the requested size that's expressed as a CIDR range (number of 5522// leading bits of ipV4 network mask). The method checks against the 5523// assigned allocated ranges to find a non-conflicting IP address range. 5524// The method will reuse a subnet if subsequent calls contain the same 5525// subnet name, region, and prefix length. This method will make 5526// producer's tenant project to be a shared VPC service project as 5527// needed. 5528func (r *ServicesService) AddSubnetwork(parent string, addsubnetworkrequest *AddSubnetworkRequest) *ServicesAddSubnetworkCall { 5529 c := &ServicesAddSubnetworkCall{s: r.s, urlParams_: make(gensupport.URLParams)} 5530 c.parent = parent 5531 c.addsubnetworkrequest = addsubnetworkrequest 5532 return c 5533} 5534 5535// Fields allows partial responses to be retrieved. See 5536// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 5537// for more information. 5538func (c *ServicesAddSubnetworkCall) Fields(s ...googleapi.Field) *ServicesAddSubnetworkCall { 5539 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 5540 return c 5541} 5542 5543// Context sets the context to be used in this call's Do method. Any 5544// pending HTTP request will be aborted if the provided context is 5545// canceled. 5546func (c *ServicesAddSubnetworkCall) Context(ctx context.Context) *ServicesAddSubnetworkCall { 5547 c.ctx_ = ctx 5548 return c 5549} 5550 5551// Header returns an http.Header that can be modified by the caller to 5552// add HTTP headers to the request. 5553func (c *ServicesAddSubnetworkCall) Header() http.Header { 5554 if c.header_ == nil { 5555 c.header_ = make(http.Header) 5556 } 5557 return c.header_ 5558} 5559 5560func (c *ServicesAddSubnetworkCall) doRequest(alt string) (*http.Response, error) { 5561 reqHeaders := make(http.Header) 5562 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322") 5563 for k, v := range c.header_ { 5564 reqHeaders[k] = v 5565 } 5566 reqHeaders.Set("User-Agent", c.s.userAgent()) 5567 var body io.Reader = nil 5568 body, err := googleapi.WithoutDataWrapper.JSONReader(c.addsubnetworkrequest) 5569 if err != nil { 5570 return nil, err 5571 } 5572 reqHeaders.Set("Content-Type", "application/json") 5573 c.urlParams_.Set("alt", alt) 5574 c.urlParams_.Set("prettyPrint", "false") 5575 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}:addSubnetwork") 5576 urls += "?" + c.urlParams_.Encode() 5577 req, err := http.NewRequest("POST", urls, body) 5578 if err != nil { 5579 return nil, err 5580 } 5581 req.Header = reqHeaders 5582 googleapi.Expand(req.URL, map[string]string{ 5583 "parent": c.parent, 5584 }) 5585 return gensupport.SendRequest(c.ctx_, c.s.client, req) 5586} 5587 5588// Do executes the "servicenetworking.services.addSubnetwork" call. 5589// Exactly one of *Operation or error will be non-nil. Any non-2xx 5590// status code is an error. Response headers are in either 5591// *Operation.ServerResponse.Header or (if a response was returned at 5592// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified 5593// to check whether the returned error was because 5594// http.StatusNotModified was returned. 5595func (c *ServicesAddSubnetworkCall) Do(opts ...googleapi.CallOption) (*Operation, error) { 5596 gensupport.SetOptions(c.urlParams_, opts...) 5597 res, err := c.doRequest("json") 5598 if res != nil && res.StatusCode == http.StatusNotModified { 5599 if res.Body != nil { 5600 res.Body.Close() 5601 } 5602 return nil, &googleapi.Error{ 5603 Code: res.StatusCode, 5604 Header: res.Header, 5605 } 5606 } 5607 if err != nil { 5608 return nil, err 5609 } 5610 defer googleapi.CloseBody(res) 5611 if err := googleapi.CheckResponse(res); err != nil { 5612 return nil, err 5613 } 5614 ret := &Operation{ 5615 ServerResponse: googleapi.ServerResponse{ 5616 Header: res.Header, 5617 HTTPStatusCode: res.StatusCode, 5618 }, 5619 } 5620 target := &ret 5621 if err := gensupport.DecodeResponse(target, res); err != nil { 5622 return nil, err 5623 } 5624 return ret, nil 5625 // { 5626 // "description": "For service producers, provisions a new subnet in a peered service's shared VPC network in the requested region and with the requested size that's expressed as a CIDR range (number of leading bits of ipV4 network mask). The method checks against the assigned allocated ranges to find a non-conflicting IP address range. The method will reuse a subnet if subsequent calls contain the same subnet name, region, and prefix length. This method will make producer's tenant project to be a shared VPC service project as needed.", 5627 // "flatPath": "v1/services/{servicesId}/{servicesId1}/{servicesId2}:addSubnetwork", 5628 // "httpMethod": "POST", 5629 // "id": "servicenetworking.services.addSubnetwork", 5630 // "parameterOrder": [ 5631 // "parent" 5632 // ], 5633 // "parameters": { 5634 // "parent": { 5635 // "description": "Required. A tenant project in the service producer organization, in the following format: services/{service}/{collection-id}/{resource-id}. {collection-id} is the cloud resource collection type that represents the tenant project. Only `projects` are supported. {resource-id} is the tenant project numeric id, such as `123456`. {service} the name of the peering service, such as `service-peering.example.com`. This service must already be enabled in the service consumer's project.", 5636 // "location": "path", 5637 // "pattern": "^services/[^/]+/[^/]+/[^/]+$", 5638 // "required": true, 5639 // "type": "string" 5640 // } 5641 // }, 5642 // "path": "v1/{+parent}:addSubnetwork", 5643 // "request": { 5644 // "$ref": "AddSubnetworkRequest" 5645 // }, 5646 // "response": { 5647 // "$ref": "Operation" 5648 // }, 5649 // "scopes": [ 5650 // "https://www.googleapis.com/auth/cloud-platform", 5651 // "https://www.googleapis.com/auth/service.management" 5652 // ] 5653 // } 5654 5655} 5656 5657// method id "servicenetworking.services.disableVpcServiceControls": 5658 5659type ServicesDisableVpcServiceControlsCall struct { 5660 s *APIService 5661 parent string 5662 disablevpcservicecontrolsrequest *DisableVpcServiceControlsRequest 5663 urlParams_ gensupport.URLParams 5664 ctx_ context.Context 5665 header_ http.Header 5666} 5667 5668// DisableVpcServiceControls: Disables VPC service controls for a 5669// connection. 5670func (r *ServicesService) DisableVpcServiceControls(parent string, disablevpcservicecontrolsrequest *DisableVpcServiceControlsRequest) *ServicesDisableVpcServiceControlsCall { 5671 c := &ServicesDisableVpcServiceControlsCall{s: r.s, urlParams_: make(gensupport.URLParams)} 5672 c.parent = parent 5673 c.disablevpcservicecontrolsrequest = disablevpcservicecontrolsrequest 5674 return c 5675} 5676 5677// Fields allows partial responses to be retrieved. See 5678// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 5679// for more information. 5680func (c *ServicesDisableVpcServiceControlsCall) Fields(s ...googleapi.Field) *ServicesDisableVpcServiceControlsCall { 5681 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 5682 return c 5683} 5684 5685// Context sets the context to be used in this call's Do method. Any 5686// pending HTTP request will be aborted if the provided context is 5687// canceled. 5688func (c *ServicesDisableVpcServiceControlsCall) Context(ctx context.Context) *ServicesDisableVpcServiceControlsCall { 5689 c.ctx_ = ctx 5690 return c 5691} 5692 5693// Header returns an http.Header that can be modified by the caller to 5694// add HTTP headers to the request. 5695func (c *ServicesDisableVpcServiceControlsCall) Header() http.Header { 5696 if c.header_ == nil { 5697 c.header_ = make(http.Header) 5698 } 5699 return c.header_ 5700} 5701 5702func (c *ServicesDisableVpcServiceControlsCall) doRequest(alt string) (*http.Response, error) { 5703 reqHeaders := make(http.Header) 5704 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322") 5705 for k, v := range c.header_ { 5706 reqHeaders[k] = v 5707 } 5708 reqHeaders.Set("User-Agent", c.s.userAgent()) 5709 var body io.Reader = nil 5710 body, err := googleapi.WithoutDataWrapper.JSONReader(c.disablevpcservicecontrolsrequest) 5711 if err != nil { 5712 return nil, err 5713 } 5714 reqHeaders.Set("Content-Type", "application/json") 5715 c.urlParams_.Set("alt", alt) 5716 c.urlParams_.Set("prettyPrint", "false") 5717 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}:disableVpcServiceControls") 5718 urls += "?" + c.urlParams_.Encode() 5719 req, err := http.NewRequest("PATCH", urls, body) 5720 if err != nil { 5721 return nil, err 5722 } 5723 req.Header = reqHeaders 5724 googleapi.Expand(req.URL, map[string]string{ 5725 "parent": c.parent, 5726 }) 5727 return gensupport.SendRequest(c.ctx_, c.s.client, req) 5728} 5729 5730// Do executes the "servicenetworking.services.disableVpcServiceControls" call. 5731// Exactly one of *Operation or error will be non-nil. Any non-2xx 5732// status code is an error. Response headers are in either 5733// *Operation.ServerResponse.Header or (if a response was returned at 5734// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified 5735// to check whether the returned error was because 5736// http.StatusNotModified was returned. 5737func (c *ServicesDisableVpcServiceControlsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { 5738 gensupport.SetOptions(c.urlParams_, opts...) 5739 res, err := c.doRequest("json") 5740 if res != nil && res.StatusCode == http.StatusNotModified { 5741 if res.Body != nil { 5742 res.Body.Close() 5743 } 5744 return nil, &googleapi.Error{ 5745 Code: res.StatusCode, 5746 Header: res.Header, 5747 } 5748 } 5749 if err != nil { 5750 return nil, err 5751 } 5752 defer googleapi.CloseBody(res) 5753 if err := googleapi.CheckResponse(res); err != nil { 5754 return nil, err 5755 } 5756 ret := &Operation{ 5757 ServerResponse: googleapi.ServerResponse{ 5758 Header: res.Header, 5759 HTTPStatusCode: res.StatusCode, 5760 }, 5761 } 5762 target := &ret 5763 if err := gensupport.DecodeResponse(target, res); err != nil { 5764 return nil, err 5765 } 5766 return ret, nil 5767 // { 5768 // "description": "Disables VPC service controls for a connection.", 5769 // "flatPath": "v1/services/{servicesId}:disableVpcServiceControls", 5770 // "httpMethod": "PATCH", 5771 // "id": "servicenetworking.services.disableVpcServiceControls", 5772 // "parameterOrder": [ 5773 // "parent" 5774 // ], 5775 // "parameters": { 5776 // "parent": { 5777 // "description": "The service that is managing peering connectivity for a service producer's organization. For Google services that support this functionality, this value is `services/servicenetworking.googleapis.com`.", 5778 // "location": "path", 5779 // "pattern": "^services/[^/]+$", 5780 // "required": true, 5781 // "type": "string" 5782 // } 5783 // }, 5784 // "path": "v1/{+parent}:disableVpcServiceControls", 5785 // "request": { 5786 // "$ref": "DisableVpcServiceControlsRequest" 5787 // }, 5788 // "response": { 5789 // "$ref": "Operation" 5790 // }, 5791 // "scopes": [ 5792 // "https://www.googleapis.com/auth/cloud-platform", 5793 // "https://www.googleapis.com/auth/service.management" 5794 // ] 5795 // } 5796 5797} 5798 5799// method id "servicenetworking.services.enableVpcServiceControls": 5800 5801type ServicesEnableVpcServiceControlsCall struct { 5802 s *APIService 5803 parent string 5804 enablevpcservicecontrolsrequest *EnableVpcServiceControlsRequest 5805 urlParams_ gensupport.URLParams 5806 ctx_ context.Context 5807 header_ http.Header 5808} 5809 5810// EnableVpcServiceControls: Enables VPC service controls for a 5811// connection. 5812func (r *ServicesService) EnableVpcServiceControls(parent string, enablevpcservicecontrolsrequest *EnableVpcServiceControlsRequest) *ServicesEnableVpcServiceControlsCall { 5813 c := &ServicesEnableVpcServiceControlsCall{s: r.s, urlParams_: make(gensupport.URLParams)} 5814 c.parent = parent 5815 c.enablevpcservicecontrolsrequest = enablevpcservicecontrolsrequest 5816 return c 5817} 5818 5819// Fields allows partial responses to be retrieved. See 5820// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 5821// for more information. 5822func (c *ServicesEnableVpcServiceControlsCall) Fields(s ...googleapi.Field) *ServicesEnableVpcServiceControlsCall { 5823 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 5824 return c 5825} 5826 5827// Context sets the context to be used in this call's Do method. Any 5828// pending HTTP request will be aborted if the provided context is 5829// canceled. 5830func (c *ServicesEnableVpcServiceControlsCall) Context(ctx context.Context) *ServicesEnableVpcServiceControlsCall { 5831 c.ctx_ = ctx 5832 return c 5833} 5834 5835// Header returns an http.Header that can be modified by the caller to 5836// add HTTP headers to the request. 5837func (c *ServicesEnableVpcServiceControlsCall) Header() http.Header { 5838 if c.header_ == nil { 5839 c.header_ = make(http.Header) 5840 } 5841 return c.header_ 5842} 5843 5844func (c *ServicesEnableVpcServiceControlsCall) doRequest(alt string) (*http.Response, error) { 5845 reqHeaders := make(http.Header) 5846 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322") 5847 for k, v := range c.header_ { 5848 reqHeaders[k] = v 5849 } 5850 reqHeaders.Set("User-Agent", c.s.userAgent()) 5851 var body io.Reader = nil 5852 body, err := googleapi.WithoutDataWrapper.JSONReader(c.enablevpcservicecontrolsrequest) 5853 if err != nil { 5854 return nil, err 5855 } 5856 reqHeaders.Set("Content-Type", "application/json") 5857 c.urlParams_.Set("alt", alt) 5858 c.urlParams_.Set("prettyPrint", "false") 5859 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}:enableVpcServiceControls") 5860 urls += "?" + c.urlParams_.Encode() 5861 req, err := http.NewRequest("PATCH", urls, body) 5862 if err != nil { 5863 return nil, err 5864 } 5865 req.Header = reqHeaders 5866 googleapi.Expand(req.URL, map[string]string{ 5867 "parent": c.parent, 5868 }) 5869 return gensupport.SendRequest(c.ctx_, c.s.client, req) 5870} 5871 5872// Do executes the "servicenetworking.services.enableVpcServiceControls" call. 5873// Exactly one of *Operation or error will be non-nil. Any non-2xx 5874// status code is an error. Response headers are in either 5875// *Operation.ServerResponse.Header or (if a response was returned at 5876// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified 5877// to check whether the returned error was because 5878// http.StatusNotModified was returned. 5879func (c *ServicesEnableVpcServiceControlsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { 5880 gensupport.SetOptions(c.urlParams_, opts...) 5881 res, err := c.doRequest("json") 5882 if res != nil && res.StatusCode == http.StatusNotModified { 5883 if res.Body != nil { 5884 res.Body.Close() 5885 } 5886 return nil, &googleapi.Error{ 5887 Code: res.StatusCode, 5888 Header: res.Header, 5889 } 5890 } 5891 if err != nil { 5892 return nil, err 5893 } 5894 defer googleapi.CloseBody(res) 5895 if err := googleapi.CheckResponse(res); err != nil { 5896 return nil, err 5897 } 5898 ret := &Operation{ 5899 ServerResponse: googleapi.ServerResponse{ 5900 Header: res.Header, 5901 HTTPStatusCode: res.StatusCode, 5902 }, 5903 } 5904 target := &ret 5905 if err := gensupport.DecodeResponse(target, res); err != nil { 5906 return nil, err 5907 } 5908 return ret, nil 5909 // { 5910 // "description": "Enables VPC service controls for a connection.", 5911 // "flatPath": "v1/services/{servicesId}:enableVpcServiceControls", 5912 // "httpMethod": "PATCH", 5913 // "id": "servicenetworking.services.enableVpcServiceControls", 5914 // "parameterOrder": [ 5915 // "parent" 5916 // ], 5917 // "parameters": { 5918 // "parent": { 5919 // "description": "The service that is managing peering connectivity for a service producer's organization. For Google services that support this functionality, this value is `services/servicenetworking.googleapis.com`.", 5920 // "location": "path", 5921 // "pattern": "^services/[^/]+$", 5922 // "required": true, 5923 // "type": "string" 5924 // } 5925 // }, 5926 // "path": "v1/{+parent}:enableVpcServiceControls", 5927 // "request": { 5928 // "$ref": "EnableVpcServiceControlsRequest" 5929 // }, 5930 // "response": { 5931 // "$ref": "Operation" 5932 // }, 5933 // "scopes": [ 5934 // "https://www.googleapis.com/auth/cloud-platform", 5935 // "https://www.googleapis.com/auth/service.management" 5936 // ] 5937 // } 5938 5939} 5940 5941// method id "servicenetworking.services.searchRange": 5942 5943type ServicesSearchRangeCall struct { 5944 s *APIService 5945 parent string 5946 searchrangerequest *SearchRangeRequest 5947 urlParams_ gensupport.URLParams 5948 ctx_ context.Context 5949 header_ http.Header 5950} 5951 5952// SearchRange: Service producers can use this method to find a 5953// currently unused range within consumer allocated ranges. This 5954// returned range is not reserved, and not guaranteed to remain unused. 5955// It will validate previously provided allocated ranges, find 5956// non-conflicting sub-range of requested size (expressed in number of 5957// leading bits of ipv4 network mask, as in CIDR range notation). 5958func (r *ServicesService) SearchRange(parent string, searchrangerequest *SearchRangeRequest) *ServicesSearchRangeCall { 5959 c := &ServicesSearchRangeCall{s: r.s, urlParams_: make(gensupport.URLParams)} 5960 c.parent = parent 5961 c.searchrangerequest = searchrangerequest 5962 return c 5963} 5964 5965// Fields allows partial responses to be retrieved. See 5966// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 5967// for more information. 5968func (c *ServicesSearchRangeCall) Fields(s ...googleapi.Field) *ServicesSearchRangeCall { 5969 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 5970 return c 5971} 5972 5973// Context sets the context to be used in this call's Do method. Any 5974// pending HTTP request will be aborted if the provided context is 5975// canceled. 5976func (c *ServicesSearchRangeCall) Context(ctx context.Context) *ServicesSearchRangeCall { 5977 c.ctx_ = ctx 5978 return c 5979} 5980 5981// Header returns an http.Header that can be modified by the caller to 5982// add HTTP headers to the request. 5983func (c *ServicesSearchRangeCall) Header() http.Header { 5984 if c.header_ == nil { 5985 c.header_ = make(http.Header) 5986 } 5987 return c.header_ 5988} 5989 5990func (c *ServicesSearchRangeCall) doRequest(alt string) (*http.Response, error) { 5991 reqHeaders := make(http.Header) 5992 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322") 5993 for k, v := range c.header_ { 5994 reqHeaders[k] = v 5995 } 5996 reqHeaders.Set("User-Agent", c.s.userAgent()) 5997 var body io.Reader = nil 5998 body, err := googleapi.WithoutDataWrapper.JSONReader(c.searchrangerequest) 5999 if err != nil { 6000 return nil, err 6001 } 6002 reqHeaders.Set("Content-Type", "application/json") 6003 c.urlParams_.Set("alt", alt) 6004 c.urlParams_.Set("prettyPrint", "false") 6005 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}:searchRange") 6006 urls += "?" + c.urlParams_.Encode() 6007 req, err := http.NewRequest("POST", urls, body) 6008 if err != nil { 6009 return nil, err 6010 } 6011 req.Header = reqHeaders 6012 googleapi.Expand(req.URL, map[string]string{ 6013 "parent": c.parent, 6014 }) 6015 return gensupport.SendRequest(c.ctx_, c.s.client, req) 6016} 6017 6018// Do executes the "servicenetworking.services.searchRange" call. 6019// Exactly one of *Operation or error will be non-nil. Any non-2xx 6020// status code is an error. Response headers are in either 6021// *Operation.ServerResponse.Header or (if a response was returned at 6022// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified 6023// to check whether the returned error was because 6024// http.StatusNotModified was returned. 6025func (c *ServicesSearchRangeCall) Do(opts ...googleapi.CallOption) (*Operation, error) { 6026 gensupport.SetOptions(c.urlParams_, opts...) 6027 res, err := c.doRequest("json") 6028 if res != nil && res.StatusCode == http.StatusNotModified { 6029 if res.Body != nil { 6030 res.Body.Close() 6031 } 6032 return nil, &googleapi.Error{ 6033 Code: res.StatusCode, 6034 Header: res.Header, 6035 } 6036 } 6037 if err != nil { 6038 return nil, err 6039 } 6040 defer googleapi.CloseBody(res) 6041 if err := googleapi.CheckResponse(res); err != nil { 6042 return nil, err 6043 } 6044 ret := &Operation{ 6045 ServerResponse: googleapi.ServerResponse{ 6046 Header: res.Header, 6047 HTTPStatusCode: res.StatusCode, 6048 }, 6049 } 6050 target := &ret 6051 if err := gensupport.DecodeResponse(target, res); err != nil { 6052 return nil, err 6053 } 6054 return ret, nil 6055 // { 6056 // "description": "Service producers can use this method to find a currently unused range within consumer allocated ranges. This returned range is not reserved, and not guaranteed to remain unused. It will validate previously provided allocated ranges, find non-conflicting sub-range of requested size (expressed in number of leading bits of ipv4 network mask, as in CIDR range notation).", 6057 // "flatPath": "v1/services/{servicesId}:searchRange", 6058 // "httpMethod": "POST", 6059 // "id": "servicenetworking.services.searchRange", 6060 // "parameterOrder": [ 6061 // "parent" 6062 // ], 6063 // "parameters": { 6064 // "parent": { 6065 // "description": "Required. This is in a form services/{service}. {service} the name of the private access management service, for example 'service-peering.example.com'.", 6066 // "location": "path", 6067 // "pattern": "^services/[^/]+$", 6068 // "required": true, 6069 // "type": "string" 6070 // } 6071 // }, 6072 // "path": "v1/{+parent}:searchRange", 6073 // "request": { 6074 // "$ref": "SearchRangeRequest" 6075 // }, 6076 // "response": { 6077 // "$ref": "Operation" 6078 // }, 6079 // "scopes": [ 6080 // "https://www.googleapis.com/auth/cloud-platform", 6081 // "https://www.googleapis.com/auth/service.management" 6082 // ] 6083 // } 6084 6085} 6086 6087// method id "servicenetworking.services.validate": 6088 6089type ServicesValidateCall struct { 6090 s *APIService 6091 parent string 6092 validateconsumerconfigrequest *ValidateConsumerConfigRequest 6093 urlParams_ gensupport.URLParams 6094 ctx_ context.Context 6095 header_ http.Header 6096} 6097 6098// Validate: Service producers use this method to validate if the 6099// consumer provided network, project and requested range are valid. 6100// This allows them to use a fail-fast mechanism for consumer requests, 6101// and not have to wait for AddSubnetwork operation completion to 6102// determine if user request is invalid. 6103func (r *ServicesService) Validate(parent string, validateconsumerconfigrequest *ValidateConsumerConfigRequest) *ServicesValidateCall { 6104 c := &ServicesValidateCall{s: r.s, urlParams_: make(gensupport.URLParams)} 6105 c.parent = parent 6106 c.validateconsumerconfigrequest = validateconsumerconfigrequest 6107 return c 6108} 6109 6110// Fields allows partial responses to be retrieved. See 6111// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 6112// for more information. 6113func (c *ServicesValidateCall) Fields(s ...googleapi.Field) *ServicesValidateCall { 6114 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 6115 return c 6116} 6117 6118// Context sets the context to be used in this call's Do method. Any 6119// pending HTTP request will be aborted if the provided context is 6120// canceled. 6121func (c *ServicesValidateCall) Context(ctx context.Context) *ServicesValidateCall { 6122 c.ctx_ = ctx 6123 return c 6124} 6125 6126// Header returns an http.Header that can be modified by the caller to 6127// add HTTP headers to the request. 6128func (c *ServicesValidateCall) Header() http.Header { 6129 if c.header_ == nil { 6130 c.header_ = make(http.Header) 6131 } 6132 return c.header_ 6133} 6134 6135func (c *ServicesValidateCall) doRequest(alt string) (*http.Response, error) { 6136 reqHeaders := make(http.Header) 6137 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322") 6138 for k, v := range c.header_ { 6139 reqHeaders[k] = v 6140 } 6141 reqHeaders.Set("User-Agent", c.s.userAgent()) 6142 var body io.Reader = nil 6143 body, err := googleapi.WithoutDataWrapper.JSONReader(c.validateconsumerconfigrequest) 6144 if err != nil { 6145 return nil, err 6146 } 6147 reqHeaders.Set("Content-Type", "application/json") 6148 c.urlParams_.Set("alt", alt) 6149 c.urlParams_.Set("prettyPrint", "false") 6150 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}:validate") 6151 urls += "?" + c.urlParams_.Encode() 6152 req, err := http.NewRequest("POST", urls, body) 6153 if err != nil { 6154 return nil, err 6155 } 6156 req.Header = reqHeaders 6157 googleapi.Expand(req.URL, map[string]string{ 6158 "parent": c.parent, 6159 }) 6160 return gensupport.SendRequest(c.ctx_, c.s.client, req) 6161} 6162 6163// Do executes the "servicenetworking.services.validate" call. 6164// Exactly one of *ValidateConsumerConfigResponse or error will be 6165// non-nil. Any non-2xx status code is an error. Response headers are in 6166// either *ValidateConsumerConfigResponse.ServerResponse.Header or (if a 6167// response was returned at all) in error.(*googleapi.Error).Header. Use 6168// googleapi.IsNotModified to check whether the returned error was 6169// because http.StatusNotModified was returned. 6170func (c *ServicesValidateCall) Do(opts ...googleapi.CallOption) (*ValidateConsumerConfigResponse, error) { 6171 gensupport.SetOptions(c.urlParams_, opts...) 6172 res, err := c.doRequest("json") 6173 if res != nil && res.StatusCode == http.StatusNotModified { 6174 if res.Body != nil { 6175 res.Body.Close() 6176 } 6177 return nil, &googleapi.Error{ 6178 Code: res.StatusCode, 6179 Header: res.Header, 6180 } 6181 } 6182 if err != nil { 6183 return nil, err 6184 } 6185 defer googleapi.CloseBody(res) 6186 if err := googleapi.CheckResponse(res); err != nil { 6187 return nil, err 6188 } 6189 ret := &ValidateConsumerConfigResponse{ 6190 ServerResponse: googleapi.ServerResponse{ 6191 Header: res.Header, 6192 HTTPStatusCode: res.StatusCode, 6193 }, 6194 } 6195 target := &ret 6196 if err := gensupport.DecodeResponse(target, res); err != nil { 6197 return nil, err 6198 } 6199 return ret, nil 6200 // { 6201 // "description": "Service producers use this method to validate if the consumer provided network, project and requested range are valid. This allows them to use a fail-fast mechanism for consumer requests, and not have to wait for AddSubnetwork operation completion to determine if user request is invalid.", 6202 // "flatPath": "v1/services/{servicesId}:validate", 6203 // "httpMethod": "POST", 6204 // "id": "servicenetworking.services.validate", 6205 // "parameterOrder": [ 6206 // "parent" 6207 // ], 6208 // "parameters": { 6209 // "parent": { 6210 // "description": "Required. This is in a form services/{service} where {service} is the name of the private access management service. For example 'service-peering.example.com'.", 6211 // "location": "path", 6212 // "pattern": "^services/[^/]+$", 6213 // "required": true, 6214 // "type": "string" 6215 // } 6216 // }, 6217 // "path": "v1/{+parent}:validate", 6218 // "request": { 6219 // "$ref": "ValidateConsumerConfigRequest" 6220 // }, 6221 // "response": { 6222 // "$ref": "ValidateConsumerConfigResponse" 6223 // }, 6224 // "scopes": [ 6225 // "https://www.googleapis.com/auth/cloud-platform", 6226 // "https://www.googleapis.com/auth/service.management" 6227 // ] 6228 // } 6229 6230} 6231 6232// method id "servicenetworking.services.connections.create": 6233 6234type ServicesConnectionsCreateCall struct { 6235 s *APIService 6236 parent string 6237 connection *Connection 6238 urlParams_ gensupport.URLParams 6239 ctx_ context.Context 6240 header_ http.Header 6241} 6242 6243// Create: Creates a private connection that establishes a VPC Network 6244// Peering connection to a VPC network in the service producer's 6245// organization. The administrator of the service consumer's VPC network 6246// invokes this method. The administrator must assign one or more 6247// allocated IP ranges for provisioning subnetworks in the service 6248// producer's VPC network. This connection is used for all supported 6249// services in the service producer's organization, so it only needs to 6250// be invoked once. 6251func (r *ServicesConnectionsService) Create(parent string, connection *Connection) *ServicesConnectionsCreateCall { 6252 c := &ServicesConnectionsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)} 6253 c.parent = parent 6254 c.connection = connection 6255 return c 6256} 6257 6258// Fields allows partial responses to be retrieved. See 6259// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 6260// for more information. 6261func (c *ServicesConnectionsCreateCall) Fields(s ...googleapi.Field) *ServicesConnectionsCreateCall { 6262 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 6263 return c 6264} 6265 6266// Context sets the context to be used in this call's Do method. Any 6267// pending HTTP request will be aborted if the provided context is 6268// canceled. 6269func (c *ServicesConnectionsCreateCall) Context(ctx context.Context) *ServicesConnectionsCreateCall { 6270 c.ctx_ = ctx 6271 return c 6272} 6273 6274// Header returns an http.Header that can be modified by the caller to 6275// add HTTP headers to the request. 6276func (c *ServicesConnectionsCreateCall) Header() http.Header { 6277 if c.header_ == nil { 6278 c.header_ = make(http.Header) 6279 } 6280 return c.header_ 6281} 6282 6283func (c *ServicesConnectionsCreateCall) doRequest(alt string) (*http.Response, error) { 6284 reqHeaders := make(http.Header) 6285 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322") 6286 for k, v := range c.header_ { 6287 reqHeaders[k] = v 6288 } 6289 reqHeaders.Set("User-Agent", c.s.userAgent()) 6290 var body io.Reader = nil 6291 body, err := googleapi.WithoutDataWrapper.JSONReader(c.connection) 6292 if err != nil { 6293 return nil, err 6294 } 6295 reqHeaders.Set("Content-Type", "application/json") 6296 c.urlParams_.Set("alt", alt) 6297 c.urlParams_.Set("prettyPrint", "false") 6298 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/connections") 6299 urls += "?" + c.urlParams_.Encode() 6300 req, err := http.NewRequest("POST", urls, body) 6301 if err != nil { 6302 return nil, err 6303 } 6304 req.Header = reqHeaders 6305 googleapi.Expand(req.URL, map[string]string{ 6306 "parent": c.parent, 6307 }) 6308 return gensupport.SendRequest(c.ctx_, c.s.client, req) 6309} 6310 6311// Do executes the "servicenetworking.services.connections.create" call. 6312// Exactly one of *Operation or error will be non-nil. Any non-2xx 6313// status code is an error. Response headers are in either 6314// *Operation.ServerResponse.Header or (if a response was returned at 6315// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified 6316// to check whether the returned error was because 6317// http.StatusNotModified was returned. 6318func (c *ServicesConnectionsCreateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { 6319 gensupport.SetOptions(c.urlParams_, opts...) 6320 res, err := c.doRequest("json") 6321 if res != nil && res.StatusCode == http.StatusNotModified { 6322 if res.Body != nil { 6323 res.Body.Close() 6324 } 6325 return nil, &googleapi.Error{ 6326 Code: res.StatusCode, 6327 Header: res.Header, 6328 } 6329 } 6330 if err != nil { 6331 return nil, err 6332 } 6333 defer googleapi.CloseBody(res) 6334 if err := googleapi.CheckResponse(res); err != nil { 6335 return nil, err 6336 } 6337 ret := &Operation{ 6338 ServerResponse: googleapi.ServerResponse{ 6339 Header: res.Header, 6340 HTTPStatusCode: res.StatusCode, 6341 }, 6342 } 6343 target := &ret 6344 if err := gensupport.DecodeResponse(target, res); err != nil { 6345 return nil, err 6346 } 6347 return ret, nil 6348 // { 6349 // "description": "Creates a private connection that establishes a VPC Network Peering connection to a VPC network in the service producer's organization. The administrator of the service consumer's VPC network invokes this method. The administrator must assign one or more allocated IP ranges for provisioning subnetworks in the service producer's VPC network. This connection is used for all supported services in the service producer's organization, so it only needs to be invoked once.", 6350 // "flatPath": "v1/services/{servicesId}/connections", 6351 // "httpMethod": "POST", 6352 // "id": "servicenetworking.services.connections.create", 6353 // "parameterOrder": [ 6354 // "parent" 6355 // ], 6356 // "parameters": { 6357 // "parent": { 6358 // "description": "The service that is managing peering connectivity for a service producer's organization. For Google services that support this functionality, this value is `services/servicenetworking.googleapis.com`.", 6359 // "location": "path", 6360 // "pattern": "^services/[^/]+$", 6361 // "required": true, 6362 // "type": "string" 6363 // } 6364 // }, 6365 // "path": "v1/{+parent}/connections", 6366 // "request": { 6367 // "$ref": "Connection" 6368 // }, 6369 // "response": { 6370 // "$ref": "Operation" 6371 // }, 6372 // "scopes": [ 6373 // "https://www.googleapis.com/auth/cloud-platform", 6374 // "https://www.googleapis.com/auth/service.management" 6375 // ] 6376 // } 6377 6378} 6379 6380// method id "servicenetworking.services.connections.list": 6381 6382type ServicesConnectionsListCall struct { 6383 s *APIService 6384 parent string 6385 urlParams_ gensupport.URLParams 6386 ifNoneMatch_ string 6387 ctx_ context.Context 6388 header_ http.Header 6389} 6390 6391// List: List the private connections that are configured in a service 6392// consumer's VPC network. 6393func (r *ServicesConnectionsService) List(parent string) *ServicesConnectionsListCall { 6394 c := &ServicesConnectionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} 6395 c.parent = parent 6396 return c 6397} 6398 6399// Network sets the optional parameter "network": The name of service 6400// consumer's VPC network that's connected with service producer network 6401// through a private connection. The network name must be in the 6402// following format: `projects/{project}/global/networks/{network}`. 6403// {project} is a project number, such as in `12345` that includes the 6404// VPC service consumer's VPC network. {network} is the name of the 6405// service consumer's VPC network. 6406func (c *ServicesConnectionsListCall) Network(network string) *ServicesConnectionsListCall { 6407 c.urlParams_.Set("network", network) 6408 return c 6409} 6410 6411// Fields allows partial responses to be retrieved. See 6412// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 6413// for more information. 6414func (c *ServicesConnectionsListCall) Fields(s ...googleapi.Field) *ServicesConnectionsListCall { 6415 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 6416 return c 6417} 6418 6419// IfNoneMatch sets the optional parameter which makes the operation 6420// fail if the object's ETag matches the given value. This is useful for 6421// getting updates only after the object has changed since the last 6422// request. Use googleapi.IsNotModified to check whether the response 6423// error from Do is the result of In-None-Match. 6424func (c *ServicesConnectionsListCall) IfNoneMatch(entityTag string) *ServicesConnectionsListCall { 6425 c.ifNoneMatch_ = entityTag 6426 return c 6427} 6428 6429// Context sets the context to be used in this call's Do method. Any 6430// pending HTTP request will be aborted if the provided context is 6431// canceled. 6432func (c *ServicesConnectionsListCall) Context(ctx context.Context) *ServicesConnectionsListCall { 6433 c.ctx_ = ctx 6434 return c 6435} 6436 6437// Header returns an http.Header that can be modified by the caller to 6438// add HTTP headers to the request. 6439func (c *ServicesConnectionsListCall) Header() http.Header { 6440 if c.header_ == nil { 6441 c.header_ = make(http.Header) 6442 } 6443 return c.header_ 6444} 6445 6446func (c *ServicesConnectionsListCall) doRequest(alt string) (*http.Response, error) { 6447 reqHeaders := make(http.Header) 6448 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322") 6449 for k, v := range c.header_ { 6450 reqHeaders[k] = v 6451 } 6452 reqHeaders.Set("User-Agent", c.s.userAgent()) 6453 if c.ifNoneMatch_ != "" { 6454 reqHeaders.Set("If-None-Match", c.ifNoneMatch_) 6455 } 6456 var body io.Reader = nil 6457 c.urlParams_.Set("alt", alt) 6458 c.urlParams_.Set("prettyPrint", "false") 6459 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/connections") 6460 urls += "?" + c.urlParams_.Encode() 6461 req, err := http.NewRequest("GET", urls, body) 6462 if err != nil { 6463 return nil, err 6464 } 6465 req.Header = reqHeaders 6466 googleapi.Expand(req.URL, map[string]string{ 6467 "parent": c.parent, 6468 }) 6469 return gensupport.SendRequest(c.ctx_, c.s.client, req) 6470} 6471 6472// Do executes the "servicenetworking.services.connections.list" call. 6473// Exactly one of *ListConnectionsResponse or error will be non-nil. Any 6474// non-2xx status code is an error. Response headers are in either 6475// *ListConnectionsResponse.ServerResponse.Header or (if a response was 6476// returned at all) in error.(*googleapi.Error).Header. Use 6477// googleapi.IsNotModified to check whether the returned error was 6478// because http.StatusNotModified was returned. 6479func (c *ServicesConnectionsListCall) Do(opts ...googleapi.CallOption) (*ListConnectionsResponse, error) { 6480 gensupport.SetOptions(c.urlParams_, opts...) 6481 res, err := c.doRequest("json") 6482 if res != nil && res.StatusCode == http.StatusNotModified { 6483 if res.Body != nil { 6484 res.Body.Close() 6485 } 6486 return nil, &googleapi.Error{ 6487 Code: res.StatusCode, 6488 Header: res.Header, 6489 } 6490 } 6491 if err != nil { 6492 return nil, err 6493 } 6494 defer googleapi.CloseBody(res) 6495 if err := googleapi.CheckResponse(res); err != nil { 6496 return nil, err 6497 } 6498 ret := &ListConnectionsResponse{ 6499 ServerResponse: googleapi.ServerResponse{ 6500 Header: res.Header, 6501 HTTPStatusCode: res.StatusCode, 6502 }, 6503 } 6504 target := &ret 6505 if err := gensupport.DecodeResponse(target, res); err != nil { 6506 return nil, err 6507 } 6508 return ret, nil 6509 // { 6510 // "description": "List the private connections that are configured in a service consumer's VPC network.", 6511 // "flatPath": "v1/services/{servicesId}/connections", 6512 // "httpMethod": "GET", 6513 // "id": "servicenetworking.services.connections.list", 6514 // "parameterOrder": [ 6515 // "parent" 6516 // ], 6517 // "parameters": { 6518 // "network": { 6519 // "description": "The name of service consumer's VPC network that's connected with service producer network through a private connection. The network name must be in the following format: `projects/{project}/global/networks/{network}`. {project} is a project number, such as in `12345` that includes the VPC service consumer's VPC network. {network} is the name of the service consumer's VPC network.", 6520 // "location": "query", 6521 // "type": "string" 6522 // }, 6523 // "parent": { 6524 // "description": "The service that is managing peering connectivity for a service producer's organization. For Google services that support this functionality, this value is `services/servicenetworking.googleapis.com`. If you specify `services/-` as the parameter value, all configured peering services are listed.", 6525 // "location": "path", 6526 // "pattern": "^services/[^/]+$", 6527 // "required": true, 6528 // "type": "string" 6529 // } 6530 // }, 6531 // "path": "v1/{+parent}/connections", 6532 // "response": { 6533 // "$ref": "ListConnectionsResponse" 6534 // }, 6535 // "scopes": [ 6536 // "https://www.googleapis.com/auth/cloud-platform", 6537 // "https://www.googleapis.com/auth/service.management" 6538 // ] 6539 // } 6540 6541} 6542 6543// method id "servicenetworking.services.connections.patch": 6544 6545type ServicesConnectionsPatchCall struct { 6546 s *APIService 6547 name string 6548 connection *Connection 6549 urlParams_ gensupport.URLParams 6550 ctx_ context.Context 6551 header_ http.Header 6552} 6553 6554// Patch: Updates the allocated ranges that are assigned to a 6555// connection. 6556func (r *ServicesConnectionsService) Patch(name string, connection *Connection) *ServicesConnectionsPatchCall { 6557 c := &ServicesConnectionsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} 6558 c.name = name 6559 c.connection = connection 6560 return c 6561} 6562 6563// Force sets the optional parameter "force": If a previously defined 6564// allocated range is removed, force flag must be set to true. 6565func (c *ServicesConnectionsPatchCall) Force(force bool) *ServicesConnectionsPatchCall { 6566 c.urlParams_.Set("force", fmt.Sprint(force)) 6567 return c 6568} 6569 6570// UpdateMask sets the optional parameter "updateMask": The update mask. 6571// If this is omitted, it defaults to "*". You can only update the 6572// listed peering ranges. 6573func (c *ServicesConnectionsPatchCall) UpdateMask(updateMask string) *ServicesConnectionsPatchCall { 6574 c.urlParams_.Set("updateMask", updateMask) 6575 return c 6576} 6577 6578// Fields allows partial responses to be retrieved. See 6579// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 6580// for more information. 6581func (c *ServicesConnectionsPatchCall) Fields(s ...googleapi.Field) *ServicesConnectionsPatchCall { 6582 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 6583 return c 6584} 6585 6586// Context sets the context to be used in this call's Do method. Any 6587// pending HTTP request will be aborted if the provided context is 6588// canceled. 6589func (c *ServicesConnectionsPatchCall) Context(ctx context.Context) *ServicesConnectionsPatchCall { 6590 c.ctx_ = ctx 6591 return c 6592} 6593 6594// Header returns an http.Header that can be modified by the caller to 6595// add HTTP headers to the request. 6596func (c *ServicesConnectionsPatchCall) Header() http.Header { 6597 if c.header_ == nil { 6598 c.header_ = make(http.Header) 6599 } 6600 return c.header_ 6601} 6602 6603func (c *ServicesConnectionsPatchCall) doRequest(alt string) (*http.Response, error) { 6604 reqHeaders := make(http.Header) 6605 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322") 6606 for k, v := range c.header_ { 6607 reqHeaders[k] = v 6608 } 6609 reqHeaders.Set("User-Agent", c.s.userAgent()) 6610 var body io.Reader = nil 6611 body, err := googleapi.WithoutDataWrapper.JSONReader(c.connection) 6612 if err != nil { 6613 return nil, err 6614 } 6615 reqHeaders.Set("Content-Type", "application/json") 6616 c.urlParams_.Set("alt", alt) 6617 c.urlParams_.Set("prettyPrint", "false") 6618 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}") 6619 urls += "?" + c.urlParams_.Encode() 6620 req, err := http.NewRequest("PATCH", urls, body) 6621 if err != nil { 6622 return nil, err 6623 } 6624 req.Header = reqHeaders 6625 googleapi.Expand(req.URL, map[string]string{ 6626 "name": c.name, 6627 }) 6628 return gensupport.SendRequest(c.ctx_, c.s.client, req) 6629} 6630 6631// Do executes the "servicenetworking.services.connections.patch" call. 6632// Exactly one of *Operation or error will be non-nil. Any non-2xx 6633// status code is an error. Response headers are in either 6634// *Operation.ServerResponse.Header or (if a response was returned at 6635// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified 6636// to check whether the returned error was because 6637// http.StatusNotModified was returned. 6638func (c *ServicesConnectionsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { 6639 gensupport.SetOptions(c.urlParams_, opts...) 6640 res, err := c.doRequest("json") 6641 if res != nil && res.StatusCode == http.StatusNotModified { 6642 if res.Body != nil { 6643 res.Body.Close() 6644 } 6645 return nil, &googleapi.Error{ 6646 Code: res.StatusCode, 6647 Header: res.Header, 6648 } 6649 } 6650 if err != nil { 6651 return nil, err 6652 } 6653 defer googleapi.CloseBody(res) 6654 if err := googleapi.CheckResponse(res); err != nil { 6655 return nil, err 6656 } 6657 ret := &Operation{ 6658 ServerResponse: googleapi.ServerResponse{ 6659 Header: res.Header, 6660 HTTPStatusCode: res.StatusCode, 6661 }, 6662 } 6663 target := &ret 6664 if err := gensupport.DecodeResponse(target, res); err != nil { 6665 return nil, err 6666 } 6667 return ret, nil 6668 // { 6669 // "description": "Updates the allocated ranges that are assigned to a connection.", 6670 // "flatPath": "v1/services/{servicesId}/connections/{connectionsId}", 6671 // "httpMethod": "PATCH", 6672 // "id": "servicenetworking.services.connections.patch", 6673 // "parameterOrder": [ 6674 // "name" 6675 // ], 6676 // "parameters": { 6677 // "force": { 6678 // "description": "If a previously defined allocated range is removed, force flag must be set to true.", 6679 // "location": "query", 6680 // "type": "boolean" 6681 // }, 6682 // "name": { 6683 // "description": "The private service connection that connects to a service producer organization. The name includes both the private service name and the VPC network peering name in the format of `services/{peering_service_name}/connections/{vpc_peering_name}`. For Google services that support this functionality, this is `services/servicenetworking.googleapis.com/connections/servicenetworking-googleapis-com`.", 6684 // "location": "path", 6685 // "pattern": "^services/[^/]+/connections/[^/]+$", 6686 // "required": true, 6687 // "type": "string" 6688 // }, 6689 // "updateMask": { 6690 // "description": "The update mask. If this is omitted, it defaults to \"*\". You can only update the listed peering ranges.", 6691 // "format": "google-fieldmask", 6692 // "location": "query", 6693 // "type": "string" 6694 // } 6695 // }, 6696 // "path": "v1/{+name}", 6697 // "request": { 6698 // "$ref": "Connection" 6699 // }, 6700 // "response": { 6701 // "$ref": "Operation" 6702 // }, 6703 // "scopes": [ 6704 // "https://www.googleapis.com/auth/cloud-platform", 6705 // "https://www.googleapis.com/auth/service.management" 6706 // ] 6707 // } 6708 6709} 6710 6711// method id "servicenetworking.services.dnsRecordSets.add": 6712 6713type ServicesDnsRecordSetsAddCall struct { 6714 s *APIService 6715 parent string 6716 adddnsrecordsetrequest *AddDnsRecordSetRequest 6717 urlParams_ gensupport.URLParams 6718 ctx_ context.Context 6719 header_ http.Header 6720} 6721 6722// Add: Service producers can use this method to add DNS record sets to 6723// private DNS zones in the shared producer host project. 6724func (r *ServicesDnsRecordSetsService) Add(parent string, adddnsrecordsetrequest *AddDnsRecordSetRequest) *ServicesDnsRecordSetsAddCall { 6725 c := &ServicesDnsRecordSetsAddCall{s: r.s, urlParams_: make(gensupport.URLParams)} 6726 c.parent = parent 6727 c.adddnsrecordsetrequest = adddnsrecordsetrequest 6728 return c 6729} 6730 6731// Fields allows partial responses to be retrieved. See 6732// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 6733// for more information. 6734func (c *ServicesDnsRecordSetsAddCall) Fields(s ...googleapi.Field) *ServicesDnsRecordSetsAddCall { 6735 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 6736 return c 6737} 6738 6739// Context sets the context to be used in this call's Do method. Any 6740// pending HTTP request will be aborted if the provided context is 6741// canceled. 6742func (c *ServicesDnsRecordSetsAddCall) Context(ctx context.Context) *ServicesDnsRecordSetsAddCall { 6743 c.ctx_ = ctx 6744 return c 6745} 6746 6747// Header returns an http.Header that can be modified by the caller to 6748// add HTTP headers to the request. 6749func (c *ServicesDnsRecordSetsAddCall) Header() http.Header { 6750 if c.header_ == nil { 6751 c.header_ = make(http.Header) 6752 } 6753 return c.header_ 6754} 6755 6756func (c *ServicesDnsRecordSetsAddCall) doRequest(alt string) (*http.Response, error) { 6757 reqHeaders := make(http.Header) 6758 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322") 6759 for k, v := range c.header_ { 6760 reqHeaders[k] = v 6761 } 6762 reqHeaders.Set("User-Agent", c.s.userAgent()) 6763 var body io.Reader = nil 6764 body, err := googleapi.WithoutDataWrapper.JSONReader(c.adddnsrecordsetrequest) 6765 if err != nil { 6766 return nil, err 6767 } 6768 reqHeaders.Set("Content-Type", "application/json") 6769 c.urlParams_.Set("alt", alt) 6770 c.urlParams_.Set("prettyPrint", "false") 6771 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/dnsRecordSets:add") 6772 urls += "?" + c.urlParams_.Encode() 6773 req, err := http.NewRequest("POST", urls, body) 6774 if err != nil { 6775 return nil, err 6776 } 6777 req.Header = reqHeaders 6778 googleapi.Expand(req.URL, map[string]string{ 6779 "parent": c.parent, 6780 }) 6781 return gensupport.SendRequest(c.ctx_, c.s.client, req) 6782} 6783 6784// Do executes the "servicenetworking.services.dnsRecordSets.add" call. 6785// Exactly one of *Operation or error will be non-nil. Any non-2xx 6786// status code is an error. Response headers are in either 6787// *Operation.ServerResponse.Header or (if a response was returned at 6788// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified 6789// to check whether the returned error was because 6790// http.StatusNotModified was returned. 6791func (c *ServicesDnsRecordSetsAddCall) Do(opts ...googleapi.CallOption) (*Operation, error) { 6792 gensupport.SetOptions(c.urlParams_, opts...) 6793 res, err := c.doRequest("json") 6794 if res != nil && res.StatusCode == http.StatusNotModified { 6795 if res.Body != nil { 6796 res.Body.Close() 6797 } 6798 return nil, &googleapi.Error{ 6799 Code: res.StatusCode, 6800 Header: res.Header, 6801 } 6802 } 6803 if err != nil { 6804 return nil, err 6805 } 6806 defer googleapi.CloseBody(res) 6807 if err := googleapi.CheckResponse(res); err != nil { 6808 return nil, err 6809 } 6810 ret := &Operation{ 6811 ServerResponse: googleapi.ServerResponse{ 6812 Header: res.Header, 6813 HTTPStatusCode: res.StatusCode, 6814 }, 6815 } 6816 target := &ret 6817 if err := gensupport.DecodeResponse(target, res); err != nil { 6818 return nil, err 6819 } 6820 return ret, nil 6821 // { 6822 // "description": "Service producers can use this method to add DNS record sets to private DNS zones in the shared producer host project.", 6823 // "flatPath": "v1/services/{servicesId}/dnsRecordSets:add", 6824 // "httpMethod": "POST", 6825 // "id": "servicenetworking.services.dnsRecordSets.add", 6826 // "parameterOrder": [ 6827 // "parent" 6828 // ], 6829 // "parameters": { 6830 // "parent": { 6831 // "description": "Required. The service that is managing peering connectivity for a service producer's organization. For Google services that support this functionality, this value is `services/servicenetworking.googleapis.com`.", 6832 // "location": "path", 6833 // "pattern": "^services/[^/]+$", 6834 // "required": true, 6835 // "type": "string" 6836 // } 6837 // }, 6838 // "path": "v1/{+parent}/dnsRecordSets:add", 6839 // "request": { 6840 // "$ref": "AddDnsRecordSetRequest" 6841 // }, 6842 // "response": { 6843 // "$ref": "Operation" 6844 // }, 6845 // "scopes": [ 6846 // "https://www.googleapis.com/auth/cloud-platform", 6847 // "https://www.googleapis.com/auth/service.management" 6848 // ] 6849 // } 6850 6851} 6852 6853// method id "servicenetworking.services.dnsRecordSets.remove": 6854 6855type ServicesDnsRecordSetsRemoveCall struct { 6856 s *APIService 6857 parent string 6858 removednsrecordsetrequest *RemoveDnsRecordSetRequest 6859 urlParams_ gensupport.URLParams 6860 ctx_ context.Context 6861 header_ http.Header 6862} 6863 6864// Remove: Service producers can use this method to remove DNS record 6865// sets from private DNS zones in the shared producer host project. 6866func (r *ServicesDnsRecordSetsService) Remove(parent string, removednsrecordsetrequest *RemoveDnsRecordSetRequest) *ServicesDnsRecordSetsRemoveCall { 6867 c := &ServicesDnsRecordSetsRemoveCall{s: r.s, urlParams_: make(gensupport.URLParams)} 6868 c.parent = parent 6869 c.removednsrecordsetrequest = removednsrecordsetrequest 6870 return c 6871} 6872 6873// Fields allows partial responses to be retrieved. See 6874// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 6875// for more information. 6876func (c *ServicesDnsRecordSetsRemoveCall) Fields(s ...googleapi.Field) *ServicesDnsRecordSetsRemoveCall { 6877 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 6878 return c 6879} 6880 6881// Context sets the context to be used in this call's Do method. Any 6882// pending HTTP request will be aborted if the provided context is 6883// canceled. 6884func (c *ServicesDnsRecordSetsRemoveCall) Context(ctx context.Context) *ServicesDnsRecordSetsRemoveCall { 6885 c.ctx_ = ctx 6886 return c 6887} 6888 6889// Header returns an http.Header that can be modified by the caller to 6890// add HTTP headers to the request. 6891func (c *ServicesDnsRecordSetsRemoveCall) Header() http.Header { 6892 if c.header_ == nil { 6893 c.header_ = make(http.Header) 6894 } 6895 return c.header_ 6896} 6897 6898func (c *ServicesDnsRecordSetsRemoveCall) doRequest(alt string) (*http.Response, error) { 6899 reqHeaders := make(http.Header) 6900 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322") 6901 for k, v := range c.header_ { 6902 reqHeaders[k] = v 6903 } 6904 reqHeaders.Set("User-Agent", c.s.userAgent()) 6905 var body io.Reader = nil 6906 body, err := googleapi.WithoutDataWrapper.JSONReader(c.removednsrecordsetrequest) 6907 if err != nil { 6908 return nil, err 6909 } 6910 reqHeaders.Set("Content-Type", "application/json") 6911 c.urlParams_.Set("alt", alt) 6912 c.urlParams_.Set("prettyPrint", "false") 6913 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/dnsRecordSets:remove") 6914 urls += "?" + c.urlParams_.Encode() 6915 req, err := http.NewRequest("POST", urls, body) 6916 if err != nil { 6917 return nil, err 6918 } 6919 req.Header = reqHeaders 6920 googleapi.Expand(req.URL, map[string]string{ 6921 "parent": c.parent, 6922 }) 6923 return gensupport.SendRequest(c.ctx_, c.s.client, req) 6924} 6925 6926// Do executes the "servicenetworking.services.dnsRecordSets.remove" call. 6927// Exactly one of *Operation or error will be non-nil. Any non-2xx 6928// status code is an error. Response headers are in either 6929// *Operation.ServerResponse.Header or (if a response was returned at 6930// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified 6931// to check whether the returned error was because 6932// http.StatusNotModified was returned. 6933func (c *ServicesDnsRecordSetsRemoveCall) Do(opts ...googleapi.CallOption) (*Operation, error) { 6934 gensupport.SetOptions(c.urlParams_, opts...) 6935 res, err := c.doRequest("json") 6936 if res != nil && res.StatusCode == http.StatusNotModified { 6937 if res.Body != nil { 6938 res.Body.Close() 6939 } 6940 return nil, &googleapi.Error{ 6941 Code: res.StatusCode, 6942 Header: res.Header, 6943 } 6944 } 6945 if err != nil { 6946 return nil, err 6947 } 6948 defer googleapi.CloseBody(res) 6949 if err := googleapi.CheckResponse(res); err != nil { 6950 return nil, err 6951 } 6952 ret := &Operation{ 6953 ServerResponse: googleapi.ServerResponse{ 6954 Header: res.Header, 6955 HTTPStatusCode: res.StatusCode, 6956 }, 6957 } 6958 target := &ret 6959 if err := gensupport.DecodeResponse(target, res); err != nil { 6960 return nil, err 6961 } 6962 return ret, nil 6963 // { 6964 // "description": "Service producers can use this method to remove DNS record sets from private DNS zones in the shared producer host project.", 6965 // "flatPath": "v1/services/{servicesId}/dnsRecordSets:remove", 6966 // "httpMethod": "POST", 6967 // "id": "servicenetworking.services.dnsRecordSets.remove", 6968 // "parameterOrder": [ 6969 // "parent" 6970 // ], 6971 // "parameters": { 6972 // "parent": { 6973 // "description": "Required. The service that is managing peering connectivity for a service producer's organization. For Google services that support this functionality, this value is `services/servicenetworking.googleapis.com`.", 6974 // "location": "path", 6975 // "pattern": "^services/[^/]+$", 6976 // "required": true, 6977 // "type": "string" 6978 // } 6979 // }, 6980 // "path": "v1/{+parent}/dnsRecordSets:remove", 6981 // "request": { 6982 // "$ref": "RemoveDnsRecordSetRequest" 6983 // }, 6984 // "response": { 6985 // "$ref": "Operation" 6986 // }, 6987 // "scopes": [ 6988 // "https://www.googleapis.com/auth/cloud-platform", 6989 // "https://www.googleapis.com/auth/service.management" 6990 // ] 6991 // } 6992 6993} 6994 6995// method id "servicenetworking.services.dnsRecordSets.update": 6996 6997type ServicesDnsRecordSetsUpdateCall struct { 6998 s *APIService 6999 parent string 7000 updatednsrecordsetrequest *UpdateDnsRecordSetRequest 7001 urlParams_ gensupport.URLParams 7002 ctx_ context.Context 7003 header_ http.Header 7004} 7005 7006// Update: Service producers can use this method to update DNS record 7007// sets from private DNS zones in the shared producer host project. 7008func (r *ServicesDnsRecordSetsService) Update(parent string, updatednsrecordsetrequest *UpdateDnsRecordSetRequest) *ServicesDnsRecordSetsUpdateCall { 7009 c := &ServicesDnsRecordSetsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} 7010 c.parent = parent 7011 c.updatednsrecordsetrequest = updatednsrecordsetrequest 7012 return c 7013} 7014 7015// Fields allows partial responses to be retrieved. See 7016// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 7017// for more information. 7018func (c *ServicesDnsRecordSetsUpdateCall) Fields(s ...googleapi.Field) *ServicesDnsRecordSetsUpdateCall { 7019 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 7020 return c 7021} 7022 7023// Context sets the context to be used in this call's Do method. Any 7024// pending HTTP request will be aborted if the provided context is 7025// canceled. 7026func (c *ServicesDnsRecordSetsUpdateCall) Context(ctx context.Context) *ServicesDnsRecordSetsUpdateCall { 7027 c.ctx_ = ctx 7028 return c 7029} 7030 7031// Header returns an http.Header that can be modified by the caller to 7032// add HTTP headers to the request. 7033func (c *ServicesDnsRecordSetsUpdateCall) Header() http.Header { 7034 if c.header_ == nil { 7035 c.header_ = make(http.Header) 7036 } 7037 return c.header_ 7038} 7039 7040func (c *ServicesDnsRecordSetsUpdateCall) doRequest(alt string) (*http.Response, error) { 7041 reqHeaders := make(http.Header) 7042 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322") 7043 for k, v := range c.header_ { 7044 reqHeaders[k] = v 7045 } 7046 reqHeaders.Set("User-Agent", c.s.userAgent()) 7047 var body io.Reader = nil 7048 body, err := googleapi.WithoutDataWrapper.JSONReader(c.updatednsrecordsetrequest) 7049 if err != nil { 7050 return nil, err 7051 } 7052 reqHeaders.Set("Content-Type", "application/json") 7053 c.urlParams_.Set("alt", alt) 7054 c.urlParams_.Set("prettyPrint", "false") 7055 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/dnsRecordSets:update") 7056 urls += "?" + c.urlParams_.Encode() 7057 req, err := http.NewRequest("POST", urls, body) 7058 if err != nil { 7059 return nil, err 7060 } 7061 req.Header = reqHeaders 7062 googleapi.Expand(req.URL, map[string]string{ 7063 "parent": c.parent, 7064 }) 7065 return gensupport.SendRequest(c.ctx_, c.s.client, req) 7066} 7067 7068// Do executes the "servicenetworking.services.dnsRecordSets.update" call. 7069// Exactly one of *Operation or error will be non-nil. Any non-2xx 7070// status code is an error. Response headers are in either 7071// *Operation.ServerResponse.Header or (if a response was returned at 7072// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified 7073// to check whether the returned error was because 7074// http.StatusNotModified was returned. 7075func (c *ServicesDnsRecordSetsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { 7076 gensupport.SetOptions(c.urlParams_, opts...) 7077 res, err := c.doRequest("json") 7078 if res != nil && res.StatusCode == http.StatusNotModified { 7079 if res.Body != nil { 7080 res.Body.Close() 7081 } 7082 return nil, &googleapi.Error{ 7083 Code: res.StatusCode, 7084 Header: res.Header, 7085 } 7086 } 7087 if err != nil { 7088 return nil, err 7089 } 7090 defer googleapi.CloseBody(res) 7091 if err := googleapi.CheckResponse(res); err != nil { 7092 return nil, err 7093 } 7094 ret := &Operation{ 7095 ServerResponse: googleapi.ServerResponse{ 7096 Header: res.Header, 7097 HTTPStatusCode: res.StatusCode, 7098 }, 7099 } 7100 target := &ret 7101 if err := gensupport.DecodeResponse(target, res); err != nil { 7102 return nil, err 7103 } 7104 return ret, nil 7105 // { 7106 // "description": "Service producers can use this method to update DNS record sets from private DNS zones in the shared producer host project.", 7107 // "flatPath": "v1/services/{servicesId}/dnsRecordSets:update", 7108 // "httpMethod": "POST", 7109 // "id": "servicenetworking.services.dnsRecordSets.update", 7110 // "parameterOrder": [ 7111 // "parent" 7112 // ], 7113 // "parameters": { 7114 // "parent": { 7115 // "description": "Required. The service that is managing peering connectivity for a service producer's organization. For Google services that support this functionality, this value is `services/servicenetworking.googleapis.com`.", 7116 // "location": "path", 7117 // "pattern": "^services/[^/]+$", 7118 // "required": true, 7119 // "type": "string" 7120 // } 7121 // }, 7122 // "path": "v1/{+parent}/dnsRecordSets:update", 7123 // "request": { 7124 // "$ref": "UpdateDnsRecordSetRequest" 7125 // }, 7126 // "response": { 7127 // "$ref": "Operation" 7128 // }, 7129 // "scopes": [ 7130 // "https://www.googleapis.com/auth/cloud-platform", 7131 // "https://www.googleapis.com/auth/service.management" 7132 // ] 7133 // } 7134 7135} 7136 7137// method id "servicenetworking.services.dnsZones.add": 7138 7139type ServicesDnsZonesAddCall struct { 7140 s *APIService 7141 parent string 7142 adddnszonerequest *AddDnsZoneRequest 7143 urlParams_ gensupport.URLParams 7144 ctx_ context.Context 7145 header_ http.Header 7146} 7147 7148// Add: Service producers can use this method to add private DNS zones 7149// in the shared producer host project and matching peering zones in the 7150// consumer project. 7151func (r *ServicesDnsZonesService) Add(parent string, adddnszonerequest *AddDnsZoneRequest) *ServicesDnsZonesAddCall { 7152 c := &ServicesDnsZonesAddCall{s: r.s, urlParams_: make(gensupport.URLParams)} 7153 c.parent = parent 7154 c.adddnszonerequest = adddnszonerequest 7155 return c 7156} 7157 7158// Fields allows partial responses to be retrieved. See 7159// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 7160// for more information. 7161func (c *ServicesDnsZonesAddCall) Fields(s ...googleapi.Field) *ServicesDnsZonesAddCall { 7162 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 7163 return c 7164} 7165 7166// Context sets the context to be used in this call's Do method. Any 7167// pending HTTP request will be aborted if the provided context is 7168// canceled. 7169func (c *ServicesDnsZonesAddCall) Context(ctx context.Context) *ServicesDnsZonesAddCall { 7170 c.ctx_ = ctx 7171 return c 7172} 7173 7174// Header returns an http.Header that can be modified by the caller to 7175// add HTTP headers to the request. 7176func (c *ServicesDnsZonesAddCall) Header() http.Header { 7177 if c.header_ == nil { 7178 c.header_ = make(http.Header) 7179 } 7180 return c.header_ 7181} 7182 7183func (c *ServicesDnsZonesAddCall) doRequest(alt string) (*http.Response, error) { 7184 reqHeaders := make(http.Header) 7185 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322") 7186 for k, v := range c.header_ { 7187 reqHeaders[k] = v 7188 } 7189 reqHeaders.Set("User-Agent", c.s.userAgent()) 7190 var body io.Reader = nil 7191 body, err := googleapi.WithoutDataWrapper.JSONReader(c.adddnszonerequest) 7192 if err != nil { 7193 return nil, err 7194 } 7195 reqHeaders.Set("Content-Type", "application/json") 7196 c.urlParams_.Set("alt", alt) 7197 c.urlParams_.Set("prettyPrint", "false") 7198 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/dnsZones:add") 7199 urls += "?" + c.urlParams_.Encode() 7200 req, err := http.NewRequest("POST", urls, body) 7201 if err != nil { 7202 return nil, err 7203 } 7204 req.Header = reqHeaders 7205 googleapi.Expand(req.URL, map[string]string{ 7206 "parent": c.parent, 7207 }) 7208 return gensupport.SendRequest(c.ctx_, c.s.client, req) 7209} 7210 7211// Do executes the "servicenetworking.services.dnsZones.add" call. 7212// Exactly one of *Operation or error will be non-nil. Any non-2xx 7213// status code is an error. Response headers are in either 7214// *Operation.ServerResponse.Header or (if a response was returned at 7215// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified 7216// to check whether the returned error was because 7217// http.StatusNotModified was returned. 7218func (c *ServicesDnsZonesAddCall) Do(opts ...googleapi.CallOption) (*Operation, error) { 7219 gensupport.SetOptions(c.urlParams_, opts...) 7220 res, err := c.doRequest("json") 7221 if res != nil && res.StatusCode == http.StatusNotModified { 7222 if res.Body != nil { 7223 res.Body.Close() 7224 } 7225 return nil, &googleapi.Error{ 7226 Code: res.StatusCode, 7227 Header: res.Header, 7228 } 7229 } 7230 if err != nil { 7231 return nil, err 7232 } 7233 defer googleapi.CloseBody(res) 7234 if err := googleapi.CheckResponse(res); err != nil { 7235 return nil, err 7236 } 7237 ret := &Operation{ 7238 ServerResponse: googleapi.ServerResponse{ 7239 Header: res.Header, 7240 HTTPStatusCode: res.StatusCode, 7241 }, 7242 } 7243 target := &ret 7244 if err := gensupport.DecodeResponse(target, res); err != nil { 7245 return nil, err 7246 } 7247 return ret, nil 7248 // { 7249 // "description": "Service producers can use this method to add private DNS zones in the shared producer host project and matching peering zones in the consumer project.", 7250 // "flatPath": "v1/services/{servicesId}/dnsZones:add", 7251 // "httpMethod": "POST", 7252 // "id": "servicenetworking.services.dnsZones.add", 7253 // "parameterOrder": [ 7254 // "parent" 7255 // ], 7256 // "parameters": { 7257 // "parent": { 7258 // "description": "Required. The service that is managing peering connectivity for a service producer's organization. For Google services that support this functionality, this value is `services/servicenetworking.googleapis.com`.", 7259 // "location": "path", 7260 // "pattern": "^services/[^/]+$", 7261 // "required": true, 7262 // "type": "string" 7263 // } 7264 // }, 7265 // "path": "v1/{+parent}/dnsZones:add", 7266 // "request": { 7267 // "$ref": "AddDnsZoneRequest" 7268 // }, 7269 // "response": { 7270 // "$ref": "Operation" 7271 // }, 7272 // "scopes": [ 7273 // "https://www.googleapis.com/auth/cloud-platform", 7274 // "https://www.googleapis.com/auth/service.management" 7275 // ] 7276 // } 7277 7278} 7279 7280// method id "servicenetworking.services.dnsZones.remove": 7281 7282type ServicesDnsZonesRemoveCall struct { 7283 s *APIService 7284 parent string 7285 removednszonerequest *RemoveDnsZoneRequest 7286 urlParams_ gensupport.URLParams 7287 ctx_ context.Context 7288 header_ http.Header 7289} 7290 7291// Remove: Service producers can use this method to remove private DNS 7292// zones in the shared producer host project and matching peering zones 7293// in the consumer project. 7294func (r *ServicesDnsZonesService) Remove(parent string, removednszonerequest *RemoveDnsZoneRequest) *ServicesDnsZonesRemoveCall { 7295 c := &ServicesDnsZonesRemoveCall{s: r.s, urlParams_: make(gensupport.URLParams)} 7296 c.parent = parent 7297 c.removednszonerequest = removednszonerequest 7298 return c 7299} 7300 7301// Fields allows partial responses to be retrieved. See 7302// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 7303// for more information. 7304func (c *ServicesDnsZonesRemoveCall) Fields(s ...googleapi.Field) *ServicesDnsZonesRemoveCall { 7305 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 7306 return c 7307} 7308 7309// Context sets the context to be used in this call's Do method. Any 7310// pending HTTP request will be aborted if the provided context is 7311// canceled. 7312func (c *ServicesDnsZonesRemoveCall) Context(ctx context.Context) *ServicesDnsZonesRemoveCall { 7313 c.ctx_ = ctx 7314 return c 7315} 7316 7317// Header returns an http.Header that can be modified by the caller to 7318// add HTTP headers to the request. 7319func (c *ServicesDnsZonesRemoveCall) Header() http.Header { 7320 if c.header_ == nil { 7321 c.header_ = make(http.Header) 7322 } 7323 return c.header_ 7324} 7325 7326func (c *ServicesDnsZonesRemoveCall) doRequest(alt string) (*http.Response, error) { 7327 reqHeaders := make(http.Header) 7328 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322") 7329 for k, v := range c.header_ { 7330 reqHeaders[k] = v 7331 } 7332 reqHeaders.Set("User-Agent", c.s.userAgent()) 7333 var body io.Reader = nil 7334 body, err := googleapi.WithoutDataWrapper.JSONReader(c.removednszonerequest) 7335 if err != nil { 7336 return nil, err 7337 } 7338 reqHeaders.Set("Content-Type", "application/json") 7339 c.urlParams_.Set("alt", alt) 7340 c.urlParams_.Set("prettyPrint", "false") 7341 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/dnsZones:remove") 7342 urls += "?" + c.urlParams_.Encode() 7343 req, err := http.NewRequest("POST", urls, body) 7344 if err != nil { 7345 return nil, err 7346 } 7347 req.Header = reqHeaders 7348 googleapi.Expand(req.URL, map[string]string{ 7349 "parent": c.parent, 7350 }) 7351 return gensupport.SendRequest(c.ctx_, c.s.client, req) 7352} 7353 7354// Do executes the "servicenetworking.services.dnsZones.remove" call. 7355// Exactly one of *Operation or error will be non-nil. Any non-2xx 7356// status code is an error. Response headers are in either 7357// *Operation.ServerResponse.Header or (if a response was returned at 7358// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified 7359// to check whether the returned error was because 7360// http.StatusNotModified was returned. 7361func (c *ServicesDnsZonesRemoveCall) Do(opts ...googleapi.CallOption) (*Operation, error) { 7362 gensupport.SetOptions(c.urlParams_, opts...) 7363 res, err := c.doRequest("json") 7364 if res != nil && res.StatusCode == http.StatusNotModified { 7365 if res.Body != nil { 7366 res.Body.Close() 7367 } 7368 return nil, &googleapi.Error{ 7369 Code: res.StatusCode, 7370 Header: res.Header, 7371 } 7372 } 7373 if err != nil { 7374 return nil, err 7375 } 7376 defer googleapi.CloseBody(res) 7377 if err := googleapi.CheckResponse(res); err != nil { 7378 return nil, err 7379 } 7380 ret := &Operation{ 7381 ServerResponse: googleapi.ServerResponse{ 7382 Header: res.Header, 7383 HTTPStatusCode: res.StatusCode, 7384 }, 7385 } 7386 target := &ret 7387 if err := gensupport.DecodeResponse(target, res); err != nil { 7388 return nil, err 7389 } 7390 return ret, nil 7391 // { 7392 // "description": "Service producers can use this method to remove private DNS zones in the shared producer host project and matching peering zones in the consumer project.", 7393 // "flatPath": "v1/services/{servicesId}/dnsZones:remove", 7394 // "httpMethod": "POST", 7395 // "id": "servicenetworking.services.dnsZones.remove", 7396 // "parameterOrder": [ 7397 // "parent" 7398 // ], 7399 // "parameters": { 7400 // "parent": { 7401 // "description": "Required. The service that is managing peering connectivity for a service producer's organization. For Google services that support this functionality, this value is `services/servicenetworking.googleapis.com`.", 7402 // "location": "path", 7403 // "pattern": "^services/[^/]+$", 7404 // "required": true, 7405 // "type": "string" 7406 // } 7407 // }, 7408 // "path": "v1/{+parent}/dnsZones:remove", 7409 // "request": { 7410 // "$ref": "RemoveDnsZoneRequest" 7411 // }, 7412 // "response": { 7413 // "$ref": "Operation" 7414 // }, 7415 // "scopes": [ 7416 // "https://www.googleapis.com/auth/cloud-platform", 7417 // "https://www.googleapis.com/auth/service.management" 7418 // ] 7419 // } 7420 7421} 7422 7423// method id "servicenetworking.services.projects.global.networks.get": 7424 7425type ServicesProjectsGlobalNetworksGetCall struct { 7426 s *APIService 7427 name string 7428 urlParams_ gensupport.URLParams 7429 ifNoneMatch_ string 7430 ctx_ context.Context 7431 header_ http.Header 7432} 7433 7434// Get: Service producers use this method to get the configuration of 7435// their connection including the import/export of custom routes and 7436// subnetwork routes with public IP. 7437func (r *ServicesProjectsGlobalNetworksService) Get(name string) *ServicesProjectsGlobalNetworksGetCall { 7438 c := &ServicesProjectsGlobalNetworksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} 7439 c.name = name 7440 return c 7441} 7442 7443// Fields allows partial responses to be retrieved. See 7444// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 7445// for more information. 7446func (c *ServicesProjectsGlobalNetworksGetCall) Fields(s ...googleapi.Field) *ServicesProjectsGlobalNetworksGetCall { 7447 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 7448 return c 7449} 7450 7451// IfNoneMatch sets the optional parameter which makes the operation 7452// fail if the object's ETag matches the given value. This is useful for 7453// getting updates only after the object has changed since the last 7454// request. Use googleapi.IsNotModified to check whether the response 7455// error from Do is the result of In-None-Match. 7456func (c *ServicesProjectsGlobalNetworksGetCall) IfNoneMatch(entityTag string) *ServicesProjectsGlobalNetworksGetCall { 7457 c.ifNoneMatch_ = entityTag 7458 return c 7459} 7460 7461// Context sets the context to be used in this call's Do method. Any 7462// pending HTTP request will be aborted if the provided context is 7463// canceled. 7464func (c *ServicesProjectsGlobalNetworksGetCall) Context(ctx context.Context) *ServicesProjectsGlobalNetworksGetCall { 7465 c.ctx_ = ctx 7466 return c 7467} 7468 7469// Header returns an http.Header that can be modified by the caller to 7470// add HTTP headers to the request. 7471func (c *ServicesProjectsGlobalNetworksGetCall) Header() http.Header { 7472 if c.header_ == nil { 7473 c.header_ = make(http.Header) 7474 } 7475 return c.header_ 7476} 7477 7478func (c *ServicesProjectsGlobalNetworksGetCall) doRequest(alt string) (*http.Response, error) { 7479 reqHeaders := make(http.Header) 7480 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322") 7481 for k, v := range c.header_ { 7482 reqHeaders[k] = v 7483 } 7484 reqHeaders.Set("User-Agent", c.s.userAgent()) 7485 if c.ifNoneMatch_ != "" { 7486 reqHeaders.Set("If-None-Match", c.ifNoneMatch_) 7487 } 7488 var body io.Reader = nil 7489 c.urlParams_.Set("alt", alt) 7490 c.urlParams_.Set("prettyPrint", "false") 7491 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}") 7492 urls += "?" + c.urlParams_.Encode() 7493 req, err := http.NewRequest("GET", urls, body) 7494 if err != nil { 7495 return nil, err 7496 } 7497 req.Header = reqHeaders 7498 googleapi.Expand(req.URL, map[string]string{ 7499 "name": c.name, 7500 }) 7501 return gensupport.SendRequest(c.ctx_, c.s.client, req) 7502} 7503 7504// Do executes the "servicenetworking.services.projects.global.networks.get" call. 7505// Exactly one of *ConsumerConfig or error will be non-nil. Any non-2xx 7506// status code is an error. Response headers are in either 7507// *ConsumerConfig.ServerResponse.Header or (if a response was returned 7508// at all) in error.(*googleapi.Error).Header. Use 7509// googleapi.IsNotModified to check whether the returned error was 7510// because http.StatusNotModified was returned. 7511func (c *ServicesProjectsGlobalNetworksGetCall) Do(opts ...googleapi.CallOption) (*ConsumerConfig, error) { 7512 gensupport.SetOptions(c.urlParams_, opts...) 7513 res, err := c.doRequest("json") 7514 if res != nil && res.StatusCode == http.StatusNotModified { 7515 if res.Body != nil { 7516 res.Body.Close() 7517 } 7518 return nil, &googleapi.Error{ 7519 Code: res.StatusCode, 7520 Header: res.Header, 7521 } 7522 } 7523 if err != nil { 7524 return nil, err 7525 } 7526 defer googleapi.CloseBody(res) 7527 if err := googleapi.CheckResponse(res); err != nil { 7528 return nil, err 7529 } 7530 ret := &ConsumerConfig{ 7531 ServerResponse: googleapi.ServerResponse{ 7532 Header: res.Header, 7533 HTTPStatusCode: res.StatusCode, 7534 }, 7535 } 7536 target := &ret 7537 if err := gensupport.DecodeResponse(target, res); err != nil { 7538 return nil, err 7539 } 7540 return ret, nil 7541 // { 7542 // "description": "Service producers use this method to get the configuration of their connection including the import/export of custom routes and subnetwork routes with public IP.", 7543 // "flatPath": "v1/services/{servicesId}/projects/{projectsId}/global/networks/{networksId}", 7544 // "httpMethod": "GET", 7545 // "id": "servicenetworking.services.projects.global.networks.get", 7546 // "parameterOrder": [ 7547 // "name" 7548 // ], 7549 // "parameters": { 7550 // "name": { 7551 // "description": "Required. Name of the consumer config to retrieve in the format: `services/{service}/projects/{project}/global/networks/{network}`. {service} is the peering service that is managing connectivity for the service producer's organization. For Google services that support this functionality, this value is `servicenetworking.googleapis.com`. {project} is a project number e.g. `12345` that contains the service consumer's VPC network. {network} is the name of the service consumer's VPC network.", 7552 // "location": "path", 7553 // "pattern": "^services/[^/]+/projects/[^/]+/global/networks/[^/]+$", 7554 // "required": true, 7555 // "type": "string" 7556 // } 7557 // }, 7558 // "path": "v1/{+name}", 7559 // "response": { 7560 // "$ref": "ConsumerConfig" 7561 // }, 7562 // "scopes": [ 7563 // "https://www.googleapis.com/auth/cloud-platform", 7564 // "https://www.googleapis.com/auth/service.management" 7565 // ] 7566 // } 7567 7568} 7569 7570// method id "servicenetworking.services.projects.global.networks.updateConsumerConfig": 7571 7572type ServicesProjectsGlobalNetworksUpdateConsumerConfigCall struct { 7573 s *APIService 7574 parent string 7575 updateconsumerconfigrequest *UpdateConsumerConfigRequest 7576 urlParams_ gensupport.URLParams 7577 ctx_ context.Context 7578 header_ http.Header 7579} 7580 7581// UpdateConsumerConfig: Service producers use this method to update the 7582// configuration of their connection including the import/export of 7583// custom routes and subnetwork routes with public IP. 7584func (r *ServicesProjectsGlobalNetworksService) UpdateConsumerConfig(parent string, updateconsumerconfigrequest *UpdateConsumerConfigRequest) *ServicesProjectsGlobalNetworksUpdateConsumerConfigCall { 7585 c := &ServicesProjectsGlobalNetworksUpdateConsumerConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)} 7586 c.parent = parent 7587 c.updateconsumerconfigrequest = updateconsumerconfigrequest 7588 return c 7589} 7590 7591// Fields allows partial responses to be retrieved. See 7592// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 7593// for more information. 7594func (c *ServicesProjectsGlobalNetworksUpdateConsumerConfigCall) Fields(s ...googleapi.Field) *ServicesProjectsGlobalNetworksUpdateConsumerConfigCall { 7595 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 7596 return c 7597} 7598 7599// Context sets the context to be used in this call's Do method. Any 7600// pending HTTP request will be aborted if the provided context is 7601// canceled. 7602func (c *ServicesProjectsGlobalNetworksUpdateConsumerConfigCall) Context(ctx context.Context) *ServicesProjectsGlobalNetworksUpdateConsumerConfigCall { 7603 c.ctx_ = ctx 7604 return c 7605} 7606 7607// Header returns an http.Header that can be modified by the caller to 7608// add HTTP headers to the request. 7609func (c *ServicesProjectsGlobalNetworksUpdateConsumerConfigCall) Header() http.Header { 7610 if c.header_ == nil { 7611 c.header_ = make(http.Header) 7612 } 7613 return c.header_ 7614} 7615 7616func (c *ServicesProjectsGlobalNetworksUpdateConsumerConfigCall) doRequest(alt string) (*http.Response, error) { 7617 reqHeaders := make(http.Header) 7618 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322") 7619 for k, v := range c.header_ { 7620 reqHeaders[k] = v 7621 } 7622 reqHeaders.Set("User-Agent", c.s.userAgent()) 7623 var body io.Reader = nil 7624 body, err := googleapi.WithoutDataWrapper.JSONReader(c.updateconsumerconfigrequest) 7625 if err != nil { 7626 return nil, err 7627 } 7628 reqHeaders.Set("Content-Type", "application/json") 7629 c.urlParams_.Set("alt", alt) 7630 c.urlParams_.Set("prettyPrint", "false") 7631 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}:updateConsumerConfig") 7632 urls += "?" + c.urlParams_.Encode() 7633 req, err := http.NewRequest("PATCH", urls, body) 7634 if err != nil { 7635 return nil, err 7636 } 7637 req.Header = reqHeaders 7638 googleapi.Expand(req.URL, map[string]string{ 7639 "parent": c.parent, 7640 }) 7641 return gensupport.SendRequest(c.ctx_, c.s.client, req) 7642} 7643 7644// Do executes the "servicenetworking.services.projects.global.networks.updateConsumerConfig" call. 7645// Exactly one of *Operation or error will be non-nil. Any non-2xx 7646// status code is an error. Response headers are in either 7647// *Operation.ServerResponse.Header or (if a response was returned at 7648// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified 7649// to check whether the returned error was because 7650// http.StatusNotModified was returned. 7651func (c *ServicesProjectsGlobalNetworksUpdateConsumerConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) { 7652 gensupport.SetOptions(c.urlParams_, opts...) 7653 res, err := c.doRequest("json") 7654 if res != nil && res.StatusCode == http.StatusNotModified { 7655 if res.Body != nil { 7656 res.Body.Close() 7657 } 7658 return nil, &googleapi.Error{ 7659 Code: res.StatusCode, 7660 Header: res.Header, 7661 } 7662 } 7663 if err != nil { 7664 return nil, err 7665 } 7666 defer googleapi.CloseBody(res) 7667 if err := googleapi.CheckResponse(res); err != nil { 7668 return nil, err 7669 } 7670 ret := &Operation{ 7671 ServerResponse: googleapi.ServerResponse{ 7672 Header: res.Header, 7673 HTTPStatusCode: res.StatusCode, 7674 }, 7675 } 7676 target := &ret 7677 if err := gensupport.DecodeResponse(target, res); err != nil { 7678 return nil, err 7679 } 7680 return ret, nil 7681 // { 7682 // "description": "Service producers use this method to update the configuration of their connection including the import/export of custom routes and subnetwork routes with public IP.", 7683 // "flatPath": "v1/services/{servicesId}/projects/{projectsId}/global/networks/{networksId}:updateConsumerConfig", 7684 // "httpMethod": "PATCH", 7685 // "id": "servicenetworking.services.projects.global.networks.updateConsumerConfig", 7686 // "parameterOrder": [ 7687 // "parent" 7688 // ], 7689 // "parameters": { 7690 // "parent": { 7691 // "description": "Required. Parent resource identifying the connection for which the consumer config is being updated in the format: `services/{service}/projects/{project}/global/networks/{network}` {service} is the peering service that is managing connectivity for the service producer's organization. For Google services that support this functionality, this value is `servicenetworking.googleapis.com`. {project} is the number of the project that contains the service consumer's VPC network e.g. `12345`. {network} is the name of the service consumer's VPC network.", 7692 // "location": "path", 7693 // "pattern": "^services/[^/]+/projects/[^/]+/global/networks/[^/]+$", 7694 // "required": true, 7695 // "type": "string" 7696 // } 7697 // }, 7698 // "path": "v1/{+parent}:updateConsumerConfig", 7699 // "request": { 7700 // "$ref": "UpdateConsumerConfigRequest" 7701 // }, 7702 // "response": { 7703 // "$ref": "Operation" 7704 // }, 7705 // "scopes": [ 7706 // "https://www.googleapis.com/auth/cloud-platform", 7707 // "https://www.googleapis.com/auth/service.management" 7708 // ] 7709 // } 7710 7711} 7712 7713// method id "servicenetworking.services.projects.global.networks.peeredDnsDomains.create": 7714 7715type ServicesProjectsGlobalNetworksPeeredDnsDomainsCreateCall struct { 7716 s *APIService 7717 parent string 7718 peereddnsdomain *PeeredDnsDomain 7719 urlParams_ gensupport.URLParams 7720 ctx_ context.Context 7721 header_ http.Header 7722} 7723 7724// Create: Creates a peered DNS domain which sends requests for records 7725// in given namespace originating in the service producer VPC network to 7726// the consumer VPC network to be resolved. 7727func (r *ServicesProjectsGlobalNetworksPeeredDnsDomainsService) Create(parent string, peereddnsdomain *PeeredDnsDomain) *ServicesProjectsGlobalNetworksPeeredDnsDomainsCreateCall { 7728 c := &ServicesProjectsGlobalNetworksPeeredDnsDomainsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)} 7729 c.parent = parent 7730 c.peereddnsdomain = peereddnsdomain 7731 return c 7732} 7733 7734// Fields allows partial responses to be retrieved. See 7735// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 7736// for more information. 7737func (c *ServicesProjectsGlobalNetworksPeeredDnsDomainsCreateCall) Fields(s ...googleapi.Field) *ServicesProjectsGlobalNetworksPeeredDnsDomainsCreateCall { 7738 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 7739 return c 7740} 7741 7742// Context sets the context to be used in this call's Do method. Any 7743// pending HTTP request will be aborted if the provided context is 7744// canceled. 7745func (c *ServicesProjectsGlobalNetworksPeeredDnsDomainsCreateCall) Context(ctx context.Context) *ServicesProjectsGlobalNetworksPeeredDnsDomainsCreateCall { 7746 c.ctx_ = ctx 7747 return c 7748} 7749 7750// Header returns an http.Header that can be modified by the caller to 7751// add HTTP headers to the request. 7752func (c *ServicesProjectsGlobalNetworksPeeredDnsDomainsCreateCall) Header() http.Header { 7753 if c.header_ == nil { 7754 c.header_ = make(http.Header) 7755 } 7756 return c.header_ 7757} 7758 7759func (c *ServicesProjectsGlobalNetworksPeeredDnsDomainsCreateCall) doRequest(alt string) (*http.Response, error) { 7760 reqHeaders := make(http.Header) 7761 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322") 7762 for k, v := range c.header_ { 7763 reqHeaders[k] = v 7764 } 7765 reqHeaders.Set("User-Agent", c.s.userAgent()) 7766 var body io.Reader = nil 7767 body, err := googleapi.WithoutDataWrapper.JSONReader(c.peereddnsdomain) 7768 if err != nil { 7769 return nil, err 7770 } 7771 reqHeaders.Set("Content-Type", "application/json") 7772 c.urlParams_.Set("alt", alt) 7773 c.urlParams_.Set("prettyPrint", "false") 7774 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/peeredDnsDomains") 7775 urls += "?" + c.urlParams_.Encode() 7776 req, err := http.NewRequest("POST", urls, body) 7777 if err != nil { 7778 return nil, err 7779 } 7780 req.Header = reqHeaders 7781 googleapi.Expand(req.URL, map[string]string{ 7782 "parent": c.parent, 7783 }) 7784 return gensupport.SendRequest(c.ctx_, c.s.client, req) 7785} 7786 7787// Do executes the "servicenetworking.services.projects.global.networks.peeredDnsDomains.create" call. 7788// Exactly one of *Operation or error will be non-nil. Any non-2xx 7789// status code is an error. Response headers are in either 7790// *Operation.ServerResponse.Header or (if a response was returned at 7791// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified 7792// to check whether the returned error was because 7793// http.StatusNotModified was returned. 7794func (c *ServicesProjectsGlobalNetworksPeeredDnsDomainsCreateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { 7795 gensupport.SetOptions(c.urlParams_, opts...) 7796 res, err := c.doRequest("json") 7797 if res != nil && res.StatusCode == http.StatusNotModified { 7798 if res.Body != nil { 7799 res.Body.Close() 7800 } 7801 return nil, &googleapi.Error{ 7802 Code: res.StatusCode, 7803 Header: res.Header, 7804 } 7805 } 7806 if err != nil { 7807 return nil, err 7808 } 7809 defer googleapi.CloseBody(res) 7810 if err := googleapi.CheckResponse(res); err != nil { 7811 return nil, err 7812 } 7813 ret := &Operation{ 7814 ServerResponse: googleapi.ServerResponse{ 7815 Header: res.Header, 7816 HTTPStatusCode: res.StatusCode, 7817 }, 7818 } 7819 target := &ret 7820 if err := gensupport.DecodeResponse(target, res); err != nil { 7821 return nil, err 7822 } 7823 return ret, nil 7824 // { 7825 // "description": "Creates a peered DNS domain which sends requests for records in given namespace originating in the service producer VPC network to the consumer VPC network to be resolved.", 7826 // "flatPath": "v1/services/{servicesId}/projects/{projectsId}/global/networks/{networksId}/peeredDnsDomains", 7827 // "httpMethod": "POST", 7828 // "id": "servicenetworking.services.projects.global.networks.peeredDnsDomains.create", 7829 // "parameterOrder": [ 7830 // "parent" 7831 // ], 7832 // "parameters": { 7833 // "parent": { 7834 // "description": "Required. Parent resource identifying the connection for which the peered DNS domain will be created in the format: `services/{service}/projects/{project}/global/networks/{network}` {service} is the peering service that is managing connectivity for the service producer's organization. For Google services that support this functionality, this value is `servicenetworking.googleapis.com`. {project} is the number of the project that contains the service consumer's VPC network e.g. `12345`. {network} is the name of the service consumer's VPC network.", 7835 // "location": "path", 7836 // "pattern": "^services/[^/]+/projects/[^/]+/global/networks/[^/]+$", 7837 // "required": true, 7838 // "type": "string" 7839 // } 7840 // }, 7841 // "path": "v1/{+parent}/peeredDnsDomains", 7842 // "request": { 7843 // "$ref": "PeeredDnsDomain" 7844 // }, 7845 // "response": { 7846 // "$ref": "Operation" 7847 // }, 7848 // "scopes": [ 7849 // "https://www.googleapis.com/auth/cloud-platform", 7850 // "https://www.googleapis.com/auth/service.management" 7851 // ] 7852 // } 7853 7854} 7855 7856// method id "servicenetworking.services.projects.global.networks.peeredDnsDomains.delete": 7857 7858type ServicesProjectsGlobalNetworksPeeredDnsDomainsDeleteCall struct { 7859 s *APIService 7860 name string 7861 urlParams_ gensupport.URLParams 7862 ctx_ context.Context 7863 header_ http.Header 7864} 7865 7866// Delete: Deletes a peered DNS domain. 7867func (r *ServicesProjectsGlobalNetworksPeeredDnsDomainsService) Delete(name string) *ServicesProjectsGlobalNetworksPeeredDnsDomainsDeleteCall { 7868 c := &ServicesProjectsGlobalNetworksPeeredDnsDomainsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} 7869 c.name = name 7870 return c 7871} 7872 7873// Fields allows partial responses to be retrieved. See 7874// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 7875// for more information. 7876func (c *ServicesProjectsGlobalNetworksPeeredDnsDomainsDeleteCall) Fields(s ...googleapi.Field) *ServicesProjectsGlobalNetworksPeeredDnsDomainsDeleteCall { 7877 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 7878 return c 7879} 7880 7881// Context sets the context to be used in this call's Do method. Any 7882// pending HTTP request will be aborted if the provided context is 7883// canceled. 7884func (c *ServicesProjectsGlobalNetworksPeeredDnsDomainsDeleteCall) Context(ctx context.Context) *ServicesProjectsGlobalNetworksPeeredDnsDomainsDeleteCall { 7885 c.ctx_ = ctx 7886 return c 7887} 7888 7889// Header returns an http.Header that can be modified by the caller to 7890// add HTTP headers to the request. 7891func (c *ServicesProjectsGlobalNetworksPeeredDnsDomainsDeleteCall) Header() http.Header { 7892 if c.header_ == nil { 7893 c.header_ = make(http.Header) 7894 } 7895 return c.header_ 7896} 7897 7898func (c *ServicesProjectsGlobalNetworksPeeredDnsDomainsDeleteCall) doRequest(alt string) (*http.Response, error) { 7899 reqHeaders := make(http.Header) 7900 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322") 7901 for k, v := range c.header_ { 7902 reqHeaders[k] = v 7903 } 7904 reqHeaders.Set("User-Agent", c.s.userAgent()) 7905 var body io.Reader = nil 7906 c.urlParams_.Set("alt", alt) 7907 c.urlParams_.Set("prettyPrint", "false") 7908 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}") 7909 urls += "?" + c.urlParams_.Encode() 7910 req, err := http.NewRequest("DELETE", urls, body) 7911 if err != nil { 7912 return nil, err 7913 } 7914 req.Header = reqHeaders 7915 googleapi.Expand(req.URL, map[string]string{ 7916 "name": c.name, 7917 }) 7918 return gensupport.SendRequest(c.ctx_, c.s.client, req) 7919} 7920 7921// Do executes the "servicenetworking.services.projects.global.networks.peeredDnsDomains.delete" call. 7922// Exactly one of *Operation or error will be non-nil. Any non-2xx 7923// status code is an error. Response headers are in either 7924// *Operation.ServerResponse.Header or (if a response was returned at 7925// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified 7926// to check whether the returned error was because 7927// http.StatusNotModified was returned. 7928func (c *ServicesProjectsGlobalNetworksPeeredDnsDomainsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { 7929 gensupport.SetOptions(c.urlParams_, opts...) 7930 res, err := c.doRequest("json") 7931 if res != nil && res.StatusCode == http.StatusNotModified { 7932 if res.Body != nil { 7933 res.Body.Close() 7934 } 7935 return nil, &googleapi.Error{ 7936 Code: res.StatusCode, 7937 Header: res.Header, 7938 } 7939 } 7940 if err != nil { 7941 return nil, err 7942 } 7943 defer googleapi.CloseBody(res) 7944 if err := googleapi.CheckResponse(res); err != nil { 7945 return nil, err 7946 } 7947 ret := &Operation{ 7948 ServerResponse: googleapi.ServerResponse{ 7949 Header: res.Header, 7950 HTTPStatusCode: res.StatusCode, 7951 }, 7952 } 7953 target := &ret 7954 if err := gensupport.DecodeResponse(target, res); err != nil { 7955 return nil, err 7956 } 7957 return ret, nil 7958 // { 7959 // "description": "Deletes a peered DNS domain.", 7960 // "flatPath": "v1/services/{servicesId}/projects/{projectsId}/global/networks/{networksId}/peeredDnsDomains/{peeredDnsDomainsId}", 7961 // "httpMethod": "DELETE", 7962 // "id": "servicenetworking.services.projects.global.networks.peeredDnsDomains.delete", 7963 // "parameterOrder": [ 7964 // "name" 7965 // ], 7966 // "parameters": { 7967 // "name": { 7968 // "description": "Required. The name of the peered DNS domain to delete in the format: `services/{service}/projects/{project}/global/networks/{network}/peeredDnsDomains/{name}`. {service} is the peering service that is managing connectivity for the service producer's organization. For Google services that support this functionality, this value is `servicenetworking.googleapis.com`. {project} is the number of the project that contains the service consumer's VPC network e.g. `12345`. {network} is the name of the service consumer's VPC network. {name} is the name of the peered DNS domain.", 7969 // "location": "path", 7970 // "pattern": "^services/[^/]+/projects/[^/]+/global/networks/[^/]+/peeredDnsDomains/[^/]+$", 7971 // "required": true, 7972 // "type": "string" 7973 // } 7974 // }, 7975 // "path": "v1/{+name}", 7976 // "response": { 7977 // "$ref": "Operation" 7978 // }, 7979 // "scopes": [ 7980 // "https://www.googleapis.com/auth/cloud-platform", 7981 // "https://www.googleapis.com/auth/service.management" 7982 // ] 7983 // } 7984 7985} 7986 7987// method id "servicenetworking.services.projects.global.networks.peeredDnsDomains.list": 7988 7989type ServicesProjectsGlobalNetworksPeeredDnsDomainsListCall struct { 7990 s *APIService 7991 parent string 7992 urlParams_ gensupport.URLParams 7993 ifNoneMatch_ string 7994 ctx_ context.Context 7995 header_ http.Header 7996} 7997 7998// List: Lists peered DNS domains for a connection. 7999func (r *ServicesProjectsGlobalNetworksPeeredDnsDomainsService) List(parent string) *ServicesProjectsGlobalNetworksPeeredDnsDomainsListCall { 8000 c := &ServicesProjectsGlobalNetworksPeeredDnsDomainsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} 8001 c.parent = parent 8002 return c 8003} 8004 8005// Fields allows partial responses to be retrieved. See 8006// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 8007// for more information. 8008func (c *ServicesProjectsGlobalNetworksPeeredDnsDomainsListCall) Fields(s ...googleapi.Field) *ServicesProjectsGlobalNetworksPeeredDnsDomainsListCall { 8009 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 8010 return c 8011} 8012 8013// IfNoneMatch sets the optional parameter which makes the operation 8014// fail if the object's ETag matches the given value. This is useful for 8015// getting updates only after the object has changed since the last 8016// request. Use googleapi.IsNotModified to check whether the response 8017// error from Do is the result of In-None-Match. 8018func (c *ServicesProjectsGlobalNetworksPeeredDnsDomainsListCall) IfNoneMatch(entityTag string) *ServicesProjectsGlobalNetworksPeeredDnsDomainsListCall { 8019 c.ifNoneMatch_ = entityTag 8020 return c 8021} 8022 8023// Context sets the context to be used in this call's Do method. Any 8024// pending HTTP request will be aborted if the provided context is 8025// canceled. 8026func (c *ServicesProjectsGlobalNetworksPeeredDnsDomainsListCall) Context(ctx context.Context) *ServicesProjectsGlobalNetworksPeeredDnsDomainsListCall { 8027 c.ctx_ = ctx 8028 return c 8029} 8030 8031// Header returns an http.Header that can be modified by the caller to 8032// add HTTP headers to the request. 8033func (c *ServicesProjectsGlobalNetworksPeeredDnsDomainsListCall) Header() http.Header { 8034 if c.header_ == nil { 8035 c.header_ = make(http.Header) 8036 } 8037 return c.header_ 8038} 8039 8040func (c *ServicesProjectsGlobalNetworksPeeredDnsDomainsListCall) doRequest(alt string) (*http.Response, error) { 8041 reqHeaders := make(http.Header) 8042 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322") 8043 for k, v := range c.header_ { 8044 reqHeaders[k] = v 8045 } 8046 reqHeaders.Set("User-Agent", c.s.userAgent()) 8047 if c.ifNoneMatch_ != "" { 8048 reqHeaders.Set("If-None-Match", c.ifNoneMatch_) 8049 } 8050 var body io.Reader = nil 8051 c.urlParams_.Set("alt", alt) 8052 c.urlParams_.Set("prettyPrint", "false") 8053 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/peeredDnsDomains") 8054 urls += "?" + c.urlParams_.Encode() 8055 req, err := http.NewRequest("GET", urls, body) 8056 if err != nil { 8057 return nil, err 8058 } 8059 req.Header = reqHeaders 8060 googleapi.Expand(req.URL, map[string]string{ 8061 "parent": c.parent, 8062 }) 8063 return gensupport.SendRequest(c.ctx_, c.s.client, req) 8064} 8065 8066// Do executes the "servicenetworking.services.projects.global.networks.peeredDnsDomains.list" call. 8067// Exactly one of *ListPeeredDnsDomainsResponse or error will be 8068// non-nil. Any non-2xx status code is an error. Response headers are in 8069// either *ListPeeredDnsDomainsResponse.ServerResponse.Header or (if a 8070// response was returned at all) in error.(*googleapi.Error).Header. Use 8071// googleapi.IsNotModified to check whether the returned error was 8072// because http.StatusNotModified was returned. 8073func (c *ServicesProjectsGlobalNetworksPeeredDnsDomainsListCall) Do(opts ...googleapi.CallOption) (*ListPeeredDnsDomainsResponse, error) { 8074 gensupport.SetOptions(c.urlParams_, opts...) 8075 res, err := c.doRequest("json") 8076 if res != nil && res.StatusCode == http.StatusNotModified { 8077 if res.Body != nil { 8078 res.Body.Close() 8079 } 8080 return nil, &googleapi.Error{ 8081 Code: res.StatusCode, 8082 Header: res.Header, 8083 } 8084 } 8085 if err != nil { 8086 return nil, err 8087 } 8088 defer googleapi.CloseBody(res) 8089 if err := googleapi.CheckResponse(res); err != nil { 8090 return nil, err 8091 } 8092 ret := &ListPeeredDnsDomainsResponse{ 8093 ServerResponse: googleapi.ServerResponse{ 8094 Header: res.Header, 8095 HTTPStatusCode: res.StatusCode, 8096 }, 8097 } 8098 target := &ret 8099 if err := gensupport.DecodeResponse(target, res); err != nil { 8100 return nil, err 8101 } 8102 return ret, nil 8103 // { 8104 // "description": "Lists peered DNS domains for a connection.", 8105 // "flatPath": "v1/services/{servicesId}/projects/{projectsId}/global/networks/{networksId}/peeredDnsDomains", 8106 // "httpMethod": "GET", 8107 // "id": "servicenetworking.services.projects.global.networks.peeredDnsDomains.list", 8108 // "parameterOrder": [ 8109 // "parent" 8110 // ], 8111 // "parameters": { 8112 // "parent": { 8113 // "description": "Required. Parent resource identifying the connection which owns this collection of peered DNS domains in the format: `services/{service}/projects/{project}/global/networks/{network}`. {service} is the peering service that is managing connectivity for the service producer's organization. For Google services that support this functionality, this value is `servicenetworking.googleapis.com`. {project} is a project number e.g. `12345` that contains the service consumer's VPC network. {network} is the name of the service consumer's VPC network.", 8114 // "location": "path", 8115 // "pattern": "^services/[^/]+/projects/[^/]+/global/networks/[^/]+$", 8116 // "required": true, 8117 // "type": "string" 8118 // } 8119 // }, 8120 // "path": "v1/{+parent}/peeredDnsDomains", 8121 // "response": { 8122 // "$ref": "ListPeeredDnsDomainsResponse" 8123 // }, 8124 // "scopes": [ 8125 // "https://www.googleapis.com/auth/cloud-platform", 8126 // "https://www.googleapis.com/auth/service.management" 8127 // ] 8128 // } 8129 8130} 8131 8132// method id "servicenetworking.services.roles.add": 8133 8134type ServicesRolesAddCall struct { 8135 s *APIService 8136 parent string 8137 addrolesrequest *AddRolesRequest 8138 urlParams_ gensupport.URLParams 8139 ctx_ context.Context 8140 header_ http.Header 8141} 8142 8143// Add: Service producers can use this method to add roles in the shared 8144// VPC host project. Each role is bound to the provided member. Each 8145// role must be selected from within an allowlisted set of roles. Each 8146// role is applied at only the granularity specified in the allowlist. 8147func (r *ServicesRolesService) Add(parent string, addrolesrequest *AddRolesRequest) *ServicesRolesAddCall { 8148 c := &ServicesRolesAddCall{s: r.s, urlParams_: make(gensupport.URLParams)} 8149 c.parent = parent 8150 c.addrolesrequest = addrolesrequest 8151 return c 8152} 8153 8154// Fields allows partial responses to be retrieved. See 8155// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 8156// for more information. 8157func (c *ServicesRolesAddCall) Fields(s ...googleapi.Field) *ServicesRolesAddCall { 8158 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 8159 return c 8160} 8161 8162// Context sets the context to be used in this call's Do method. Any 8163// pending HTTP request will be aborted if the provided context is 8164// canceled. 8165func (c *ServicesRolesAddCall) Context(ctx context.Context) *ServicesRolesAddCall { 8166 c.ctx_ = ctx 8167 return c 8168} 8169 8170// Header returns an http.Header that can be modified by the caller to 8171// add HTTP headers to the request. 8172func (c *ServicesRolesAddCall) Header() http.Header { 8173 if c.header_ == nil { 8174 c.header_ = make(http.Header) 8175 } 8176 return c.header_ 8177} 8178 8179func (c *ServicesRolesAddCall) doRequest(alt string) (*http.Response, error) { 8180 reqHeaders := make(http.Header) 8181 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322") 8182 for k, v := range c.header_ { 8183 reqHeaders[k] = v 8184 } 8185 reqHeaders.Set("User-Agent", c.s.userAgent()) 8186 var body io.Reader = nil 8187 body, err := googleapi.WithoutDataWrapper.JSONReader(c.addrolesrequest) 8188 if err != nil { 8189 return nil, err 8190 } 8191 reqHeaders.Set("Content-Type", "application/json") 8192 c.urlParams_.Set("alt", alt) 8193 c.urlParams_.Set("prettyPrint", "false") 8194 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/roles:add") 8195 urls += "?" + c.urlParams_.Encode() 8196 req, err := http.NewRequest("POST", urls, body) 8197 if err != nil { 8198 return nil, err 8199 } 8200 req.Header = reqHeaders 8201 googleapi.Expand(req.URL, map[string]string{ 8202 "parent": c.parent, 8203 }) 8204 return gensupport.SendRequest(c.ctx_, c.s.client, req) 8205} 8206 8207// Do executes the "servicenetworking.services.roles.add" call. 8208// Exactly one of *Operation or error will be non-nil. Any non-2xx 8209// status code is an error. Response headers are in either 8210// *Operation.ServerResponse.Header or (if a response was returned at 8211// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified 8212// to check whether the returned error was because 8213// http.StatusNotModified was returned. 8214func (c *ServicesRolesAddCall) Do(opts ...googleapi.CallOption) (*Operation, error) { 8215 gensupport.SetOptions(c.urlParams_, opts...) 8216 res, err := c.doRequest("json") 8217 if res != nil && res.StatusCode == http.StatusNotModified { 8218 if res.Body != nil { 8219 res.Body.Close() 8220 } 8221 return nil, &googleapi.Error{ 8222 Code: res.StatusCode, 8223 Header: res.Header, 8224 } 8225 } 8226 if err != nil { 8227 return nil, err 8228 } 8229 defer googleapi.CloseBody(res) 8230 if err := googleapi.CheckResponse(res); err != nil { 8231 return nil, err 8232 } 8233 ret := &Operation{ 8234 ServerResponse: googleapi.ServerResponse{ 8235 Header: res.Header, 8236 HTTPStatusCode: res.StatusCode, 8237 }, 8238 } 8239 target := &ret 8240 if err := gensupport.DecodeResponse(target, res); err != nil { 8241 return nil, err 8242 } 8243 return ret, nil 8244 // { 8245 // "description": "Service producers can use this method to add roles in the shared VPC host project. Each role is bound to the provided member. Each role must be selected from within an allowlisted set of roles. Each role is applied at only the granularity specified in the allowlist.", 8246 // "flatPath": "v1/services/{servicesId}/roles:add", 8247 // "httpMethod": "POST", 8248 // "id": "servicenetworking.services.roles.add", 8249 // "parameterOrder": [ 8250 // "parent" 8251 // ], 8252 // "parameters": { 8253 // "parent": { 8254 // "description": "Required. This is in a form services/{service} where {service} is the name of the private access management service. For example 'service-peering.example.com'.", 8255 // "location": "path", 8256 // "pattern": "^services/[^/]+$", 8257 // "required": true, 8258 // "type": "string" 8259 // } 8260 // }, 8261 // "path": "v1/{+parent}/roles:add", 8262 // "request": { 8263 // "$ref": "AddRolesRequest" 8264 // }, 8265 // "response": { 8266 // "$ref": "Operation" 8267 // }, 8268 // "scopes": [ 8269 // "https://www.googleapis.com/auth/cloud-platform", 8270 // "https://www.googleapis.com/auth/service.management" 8271 // ] 8272 // } 8273 8274} 8275